多态

多态

概念

 

 

 

可以指向的引用类型是不确定的

 

 

 

注意

1.子类重写父类方法,执行子类

 

 

 2.对象执行哪些方法主要看对象左边的类型,和右边关系不大!

 

 

 

如上图,s2.eat()方法不能调用

因为s2的类型是D1201Person,而这个类型里边没有eat方法

3.如果某个方法子类父类都有但是只有方法名一样,方法内容不一样

如果子类是重写父类方法,那么调用子类方法。因为子类的方法是重写后的,可能方法内容与父类不同

如果没有重写,调用父类

总而言之

子类型能调用的方法都是自己的或者继承父类的

父类型可以指向子类,但不能调用子类型独有的方法

如何在父类调用子类独有方法

 

 

 

如上图所示,将s2这个Person类型强制转换成Student类型以后,父类就可以调用子类了

相当于给s2降成了子类型

 

多态总结

1.多态是方法的多态,属性没有多态

2.父类和子类,有联系 类型转换异常——ClassCastaException!

3.存在条件:

  • 要有继承关系

  • 方法需要重写:因为重写以后对于子类和父类方法名相同的方法,自动执行子类。如果不重写,就不确定要执行哪一个了

    注意有些方法不能重写

    1.static 方法,属于类,不属于实例

    2.final 常量

    3.private 方法

  • 父类引用指向子类对象 //father s1 = new Son( ) ;

posted @ 2022-03-29 17:27  无关风月7707  阅读(33)  评论(0编辑  收藏  举报