多态

多态

  • 对象的多态性。
    多态在程序中的体现:父类的引用或者接口的引用指向了子类对象
    多态的好处:提高了代码的扩展性
    多态的弊端:不能使用子类特有的方法

多态的前提:
1、必须有关系,继承,实现
2、通常有覆盖

  • 向上转型
    好处:隐藏了子类型,提高代码的扩展性。
    弊端:只能使用父类中的功能,不能使用子类特有功能。功能被限定了

如果不需要面对子类型,通过提高扩展性,或者使用父类的功能即可完成操作,就使用向上转型

  • 向下转型
    好处:可以使用子类型特有的功能。
    弊端:面对具体的子类型,向下转型有风险。
    容易发生ClassCastException。只要转换类型和对象类型不匹配就会发生
    想要安全,必须要进行判断。判断一个对象是否匹配某一类型,需要使用一个关键字 instanceof 对象 instanceof 类型
    什么时候向下转型:需要子类型的特有方法时。但一定要判断

  • 多态中对成员的调用
    1、成员变量
    当子父类中出现同名成员变量时。多态调用时,只看调用该成员变量的引用所属的类中的成员变量。
    2、成员函数
    出现一模一样函数时,多态调用:
    编译时,看的是引用变量所属的类中的方法
    运行时,看的是对象所属的类中的方法
    成员方法动态绑定到当前对象上
    3、静态函数
    出现一模一样的函数时
    多态调用,
    编译和运行是看引用变量所属的类中的方法

你可能感兴趣的:(多态)