2020-04-24

多态2

1.基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使得每个基类的构造器都能得到调用,构造器有一张特殊的任务:具有一项特殊任务:检查对象是否被正确地构造。导出类只能访问它自己的成员,不能访问基类中的成员。只有基类的构造器才具有恰当的知识和权限来对自己的元素进行初始化。因此必须令所有的构造器得到调用否则不能构造完整的对象。
复杂对象调用构造器要遵照下面顺序:
调用基类构造器。
按声明顺序调用成员初始化方法。
调用导出类构造器主体。
2.初始化实际过程:
在其他任何事物发生之前将分配给对象的存储空间初始化成二进制零。
调用基类构造器
按照声明顺序调用成员的初始方法。
导出类的构造主体。
这样做有一个优点,就是所有的东西都至少初始化成零,而不仅仅留作垃圾。
3.协变返回类型:他表示在导出类中的被覆盖方法可以返回基类方法的返回类型的某种导出类型。
4.用继承表达行为之间不同的差异,并用字段表达状态上的变化。
5.纯继承与扩展。这种被叫做纯粹is-a关系,因为一个类的接口已经确定了他应该是什么。继承可以保证所有导出类的接口,且绝对不会少。导出类将具有和基类一样的接口。这是纯替代因为导出类完全替代基类。使用他们时完全不需要知道关于子类的任何额外信息。基类可以接受导出类的任何信息因为二者有着完全相同的接口。缺点导出类中接口扩展部分不能被基类访问,一旦向上转型就不能调用那些新方法。
6.向下转型与运行时类型识别:由于向上转型会丢失具体类型信息我们通过向下转型来获取类型信息。向上转型是安全的因为基类不会具有大于导出类接口。向下转型是不安全的由于java中所有的转型都会得到检查如果不是我们希望的那种类型会返回一个ClassCastException类转型异常。这种运行时对类型进行检查的行为称为运行时类型识别RTTI。它不仅包括转型处理,还提供了一种方法,使得可以在试图向下转型之前查看你所要处理的类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值