多态

    技术2022-07-10  115

    文章目录

    1.多态:1.1 什么是多态?1.2多态发生的前提向上转型:重写(复写 覆盖) :override 1.3 运行时绑定:(动态绑定)1.4向下转型;2.多态的优点

    1.多态:

    1.1 什么是多态?

    父类引用子类对象 父类和子类同名的覆盖方法 通过父类引用调用重写的方法的时候,这就是多态 多态的核心:类的调用者,不必关心对象的具体类型

    1.2多态发生的前提

    向上转型:

    父类的引用指向子类对象 向上转型之后:通过父类的引用,只能访问父类的属性和方法

    向上转型发生的时机: 直接赋值 传参 返回值

    重写(复写 覆盖) :override

    方法名相同 参数类型相同 返回值相同

    发生在不同的类中,继承

    重写的注意事项: 需要重写的方法,不能是被final修饰的,他是密封方法不能重写 私有的方法不能够被重写 被重写的方法,子类当中的访问修饰限定符大于等于父类的 static修饰的静态方法不能被重写

    重载:overlode 方法名相同 参数类型不同 返回值不做要求

    面试:重写,重载的区别

    1.3 运行时绑定:(动态绑定)

    前提: 父类引用子类对象,同时通过父类引用调用同名的覆盖方法, 此时就会发生动态绑定

    1.4向下转型;

    子类的引用指向父类对象 不安全,很少使用向下转型

    classCastException:类型转换异常

    预防这种情况发生; A instanceof B:判断A是不是B的实例

    在构造器当中可以发生动态绑定

    2.多态的优点

    封装: 对于类的调用者,不需要知道具体的实现细节,你只管调用公有的方法

    使用多态的好处: 多态能让类的调用者连这类的类型都不必知道是什么,只需要知道这个对象具有某个方法即可 降低了圈复杂度 可扩展能力强

    Processed: 0.013, SQL: 9