//第七章:复用类 (组合,继承,代理三种关系) // 1:组合语法:tostring()的自动调用:如果实现了引用对象的tostring()方法,那么在调用该引用对象时有输出此对象的字符串的行为,就会自动调用tostring()方法; // 2: 继承语法:为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public. // 2.1:初始化基类 当创建了一个导出类的对象时,该对象包含了一个基类的子对象。这个基类子对象被包装在导出类对象内部。 // 对这个基类子对象的初始化是在构造器中调用基类构造器来执行初始化,java会自动的在导出类的构造器中插入对基类构造器的调用。 // 构建过程是从基类“向外”扩散的。 // 3: 代理 使用代理时可以拥有更多的控制力,因为我们可以选择只提供在成员对象中的方法的某个子集。 // 4: 结合使用组合和继承 导出类与基类中重载方法的使用不必考虑名称屏蔽。 // 5:protected关键字:对于任何继承于此类的导出类或同一个包内的类来说可访问。 // 6:向上转型 新类是现有类的一种类型 关于使用组合还是继承 可以考虑"是否需要向上转型,如果需要,则用继承,否则,就采用组合" // 7:final关键字:对于基本类型,final使数值恒定不变。对于对象引用,final使引用恒定不变。 (final+static)编译期常量。 // 7.1:空白final 声明为final但又未给初值的域可以在所属类的构造函数中初始化; // 7.2:final参数 无法在方法中更改参数引用所指的对象; // 7.3:final方法 确保在继承中使方法行为保持不变,不会被覆盖;private方法隐式为final的。 // 7.4:final类 确保不会被继承,没有子类;final类的方法默认为final方法,无法被覆盖; // 8:总结
Thinking in Java-读书笔记7
最新推荐文章于 2024-10-31 15:56:11 发布