对码当歌,猿生几何?

1.9 Java复习之多态性

多态性


背景交代:Man类和Women类继承了Person类,且重写了eat和

walk方法


类比:

Person p1 = new Man();//向上转型


entertainment方法为Man类独有,不满足多态性条件,不能直接

调用,p2.shopping方法同理。

向下转型为women类对象引用即可调用独有方法

p1是Person类(实体为man类),向下转型为woman类,能通过编

译,但执行时显示类型转化异常,因为没有shopping方法(海波

哥,苦啊!)


下例,直接向下转型,编译器都通不过,毕竟两类无直接关系

p1是man类实例,所以也是其父类person类的实例,故会输出

“你好”


多态性的应用场景:

形参类型只需要设定为父类对象引用,则可传入父类及其子类的

对象,可省略大量方法。

阅读更多