第四章 面向对象之多态 (3)

第四章 面向对象之多态

第四步:错误写法解释。

第四章 面向对象之多态

第四章 面向对象之多态

第五步:创建Dog类,继承Animal

第四章 面向对象之多态

第六步:Demo01Main中继续,查看结果

第四章 面向对象之多态

ClassCastException:类转换错误

第四章 面向对象之多态

总结:向下转型,本来就是才能转,本来就不是,他就会报错ClassCastException.

8_用instanceof关键字进行类型判断

第一步:在上一个包中创建类:Demo02InstanceOf

第四章 面向对象之多态

第二步:如果new Cat改为new Dog呢?运行查看结果。

第四章 面向对象之多态

问题:本来想用狗的方法,为什么还要向上转型?向上转、向下转两种格式都知道,但是你这个代码好像没有意义,只有演示的意义,确实如此,

但是我们考虑另外一种情况:有的时候animal不是自己new出来,比如我现在有个Main方法,这个main方法是自己new了对象自己去转对吗?

比如我现在想养只宠物,不管是猫、狗、鱼都可以,我就是为了打发时间,我应该怎么做?

第三步:Demo02Instanceof类中继续

第四章 面向对象之多态

特别注意:向下转型一定要做instanceof类型判断,否则有可能会发生异常。ClassCastException

9_笔记本USB接口案例——分析

接口与多态的综合案例

需求:笔记本电脑

笔记本电脑(laptop)通常具备使用USB设备的功能,在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。

第四章 面向对象之多态

定义USB接口,具备最基本的开启功能和关闭功能,鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘生产出来无法使用。

案例分析

笔记本类,实现笔记本使用USB鼠标、USB键盘、U盘

USB接口,包含打开设备功能,关闭设备功能。

鼠标类:实现USB接口,具备点击功能

键盘类:实现USB接口,具备按键功能。

U盘:实现USB接口,具备存取功能。

笔记本类:包含开机功能、关机功能、使用USB设备的功能

第一步:创建ch05.com.obtk_laptop. USB

/*
* USB接口类
* **/
public interface USB {
    //打开设备
    public abstract  void open();
    //关闭设备
    public abstract void close();
}

 
第二步:Laptop

/**
 * @author fly
 * @date 2019-11-13 09:30:40
 */
public class Laptop {
    public void powerOn(){
        System.out.println("打开笔记本电脑");
    }
    public void powerOff(){
        System.out.println("关机笔记本电脑");
    }
    //使用USB设备的方法,使用接口作为方法的参数
    public void useDevice(USB usb){
        usb.open();//打开设备
        usb.close();//关闭设备
    }
}

 
第三步:Mouse

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwpsp.html