java 多态。
2018-02-11 12:00 Lyp_02 阅读(146) 评论(0) 收藏 举报多态三要素:
1.继承
2.方法重写
3.父类引用指向子类对象
当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。 (但是如果强制把超类转换成子类的话,就可以调用子类中新添加而超类没有的方法了)
抽象方法:
有时无法给出任何子类都有意义的共同程序代码,抽象方法的意义就算无法实现出方法的内容,但还是可以定义出一组子型共同的协议。
好处:多态好处就是所有子型都会有的抽象方法。
只有在引用变量确实有该方法才能调用它,把类的公有方法当做是合约的内容,合约是你对其他程序的承诺。
简单情况:1.运用多态,引用类型可以是实际对象类型的父类
Animals animals =new Dog();//Dog extends Animals
2.参数和返回类型也可以是多态
3.运用多态,可以编写出引进新型子类不必修改程序
多态的弊端,就是:不能使用子类特有的成员属性和子类特有的成员方法
完整概念下的多态分为三种:(1) 特殊多态(Ad hoc polymorphism),此类下又包含函数重载(function overloading)以及类型转换多态(coercion polymorphism)(2)参数化多态(Parameteric polymorphism),对应到Java里即泛型。(3)子类型多态(Subtyping polymorphism),子类型多态,即通过类型继承关系获得的多态。
浙公网安备 33010602011771号