Java学习笔记69——对多态向下转型的理解

对多态向下转型的理解

多态的向下转型:
    存在多态的前提:(缺一不可)
        1、要有继承关系
        2、要有方法重写
        3、要有父类的引用指向子类对象


class 曹操{
    int age = 50;
    public void fight(){
        System.out.println("赤壁之战")
    }
}

class 曹植 extends 曹操{
    int age = 28;
    public void fight(){
        System.out.println("习武练习");
    }

    public void xieShi(){
        System.out.println("写诗,习惯将名字写在诗的尾部");
    }
}

某一天,要发生赤壁之战,曹操拉肚子了,临时战场上没有人指挥,曹植看到了
他立刻换上父亲的衣服,贴上假胡子,假扮父亲上战场指挥。
//这种现象,叫向上转型,多态的引用
曹操 c = new 曹植();
c.fight(); // "习武练习"
//一旦写诗就暴漏了
//c.xieShi();


这时候,曹操上完厕所了回来,告知曹植说我回来了。
这时候曹植脱下父亲的衣服,撕掉假扮的胡子,回到自己的身份
//这个现象叫做向下转型
曹植 c2 = (曹植)c;
c.fight();
//这时候就可以写诗了
c.xieShi();
上一篇:6.6 rsync:文件同步工具


下一篇:6.2 gzip:压缩或解压文件