多态性
背景交代:Man类和Women类继承了Person类,且重写了eat和
walk方法
类比:
Person p1 = new Man();//向上转型
entertainment方法为Man类独有,不满足多态性条件,不能直接
调用,p2.shopping方法同理。
向下转型为women类对象引用即可调用独有方法
p1是Person类(实体为man类),向下转型为woman类,能通过编
译,但执行时显示类型转化异常,因为没有shopping方法(海波
哥,苦啊!)
下例,直接向下转型,编译器都通不过,毕竟两类无直接关系
p1是man类实例,所以也是其父类person类的实例,故会输出
“你好”
多态性的应用场景:
形参类型只需要设定为父类对象引用,则可传入父类及其子类的
对象,可省略大量方法。