- 每个编译单元只能有一个与文件名相同的public类
- 使用继承需要慎重,简单的判断是问一问自己是否需要从新类向基类进行向上转型
- final数据,final参数,final类
- 如果基类拥有某个被多次重载的方法时,导出类如果重新定义该方法并不会屏蔽其在基类中的任何版本
- 多态通过分离“怎么做”和“做什么”,从另一个角度将接口和实现分离开来
- 多态的缺陷: 私有方法自动认为是final,不会多态; 域和静态方法在编译期间进行解析,不会多态。构造器隐含是static的
- 初始化过程:(所以如果在构造函数中发生多态,可能引发错误,C++中构造函数中多态是无效的)
- 在任何事物发生以前,将分配给对象的存储空间初始化为0
- 调用基类构造函数
- 按照声明顺序初始化成员变量
- 调用导出类构造函数主体
- 协变返回类型:导出类中的被覆盖方法可以返回基类方法的返回类型的某种导出类
- 组合更灵活,因为可以动态的选择类型。准则:用继承表达行为间的差异,并用字段表达状态上的变化
读《Java编程思想》-- 从c++转向java的java细节(6~9)
最新推荐文章于 2024-07-12 16:03:26 发布