package top.toly.接口.插头;
/**
* 作者:张风捷特烈
* 时间:2018/5/25:8:01
* 邮箱:1981462002@qq.com
* 说明:插头接口
*/
public interface 三脚插头 {
void 通电工作();
}
package top.toly.接口.插头;
/**
* 作者:张风捷特烈
* 时间:2018/5/25:8:03
* 邮箱:1981462002@qq.com
* 说明:要冰箱能工作,可以实现插头接口
*/
public class 冰箱 implements 三脚插头 {
@Override
public void 通电工作() {
System.out.println(
"冻雪糕....");
}
}
package top.toly.接口.插头;
/**
* 作者:张风捷特烈
* 时间:2018/5/25:8:03
* 邮箱:1981462002@qq.com
* 说明:要洗衣机能工作,可以实现插头接口
*/
public class 洗衣机 implements 三脚插头 {
@Override
public void 通电工作() {
System.out.println(
"洗衣服....");
}
}
package top.toly.接口.插头;
/**
* 作者:张风捷特烈
* 时间:2018/5/25:8:03
* 邮箱:1981462002@qq.com
* 说明:要电视能工作,可以实现插头接口
*/
public class 电视 implements 三脚插头 {
@Override
public void 通电工作() {
System.out.println(
"播放游戏王....");
}
}
package top.toly.接口.插头;
/**
* 作者:张风捷特烈
* 时间:2018/5/25:8:03
* 邮箱:1981462002@qq.com
* 说明:要空调能工作,可以实现插头接口
*/
public class 空调 implements 三脚插头 {
@Override
public void 通电工作() {
System.out.println(
"好凉快....");
}
}
package top.toly.接口.插头;
/**
* 作者:张风捷特烈
* 时间:2018/5/25:8:06
* 邮箱:1981462002@qq.com
* 说明:使用者
*/
public class 帅帅的我 {
public static void main(String[] args) {
插上插头(
new 电视());
插上插头(
new 冰箱());
插上插头(
new 洗衣机());
插上插头(
new 空调());
}
private static void 插上插头(三脚插头 插头) {
插头.通电工作();
}
}
-
电视机、空调、洗衣机、冰箱是不同的类实例化的具体对象。
-
电视机的内部制造过程相当于创建电视机类,实现属性和方法的过程。
-
让他们能够工作只需要一个条件——三角插头。
-
这里插头便是接口,但插上去做什么工作取决于具体类的属性与功能。
-
我想要使用这些电器,并不需要去自己制造电器,只需买了它们(相当于new XXX()),再插上插头即可。
-
插上插头的动作针对的只是插头,而不是各种电器,因为通电工作这个方法我们关注的是有没有三角插头,具体是什么电器,我们并不关注。
-
当帅帅的我在调用这个方法时才会关注我需要使用什么电器。
-
我使用洗衣机脑中所想:洗衣机有没有三脚插头(相当于类有没有实现相应接口),有就插上。而不是它是不是洗衣机,这就是面向接口,与面向对象。
-
统一接口实现了将职能的表现形式规范化。
试想一下接口不统一的坏处:如果电器都各有自己的插头规范
-
1.家里的插座就会千奇百怪,开空调需要找空调插座,开电视需要找电视插座(找起来都费劲)
-
2.电风扇的插座坏了,怎么办,必须修理后才能用(如果接口统一,换个地方就行了)
转载于:https://www.cnblogs.com/toly-top/p/9782022.html