第六章:复用类
1、toString是一个非凡的方法,当编译器需要一个String而你的类是一个对象的时候,编译器会自动调用toString方法,当然,你得保证你的类里面有这个方法。
(chap6,P2)
2、往每个类中都写一个main函数,会使调试方便得多。
(chap6,P6)
3、假如基类中没有默认的(即没有参数的)构造函数而有有参数的构造函数,则在子类的构造函数中必须调用基类的构造函数,否则编译会出错。也就是说,当子类实例化的时候
虚拟机自动去调用基类的默认的构造函数,除非在子类的构造函数中显式地调用了基类的非默认的构造函数。
(chap6,P9)
4、编译器会强制将你基类的构造函数的调用放在派生类的构造函数的最前面。也就是说,在它之前不能有任何东西。
(chap6,P9)
5、虽然编译器会强制你对基类进行初始化,并且会要求你在构造函数的开始部分完成初始化,但它不会检查你是不是进行了成员对象的初始化。
(chap6,P11)
6、合成还是继续?一般来说,合成用于新类要使用旧类的功能,而不是其接口的场合。也就是说,把对象嵌进去,用它实现新类的功能,但是用户看到的是新累的接口,而不是嵌进去
的对象的接口。
(chap6,P16)
7、一般情况下,应该将类的成员数据定义成private。
(chap6,P16)
8、上传(upcasting)总是安全的。
(chap6,P19)
9、private方法都隐含有final的意思。由于你不能访问private的方法,因此你也不能复写它。你可以给一个private方法加final修饰符,但这样做什么意义也没有。
(chap6,P24)
10、9中提到的不能复写private函数,是指,该函数在基类中是private的,并且在派生类中也是private的。假如在派生类中不是private的,则可以复写。
(chap6,P24)