多态

1.多态:

1.1 什么是多态?

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

1.2多态发生的前提

向上转型:

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

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

重写(复写 覆盖) :override

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

发生在不同的类中,继承

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

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

面试:重写,重载的区别

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

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

1.4向下转型;

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

classCastException:类型转换异常

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

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

2.多态的优点

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值