读《Java编程思想》-- 从c++转向java的java细节(6~9)

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