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.电风扇的插座坏了,怎么办,必须修理后才能用(如果接口统一,换个地方就行了)
posted on 2018-05-25 08:54  张风捷特烈  阅读(188)  评论(0编辑  收藏  举报