一、使用new關(guān)鍵字創(chuàng)建對(duì)象的時(shí)候胖替,會(huì)先調(diào)用父類的構(gòu)造器研儒。
class Person(){
public Person(){
System.out.println("Person...");
}
}
class Man extends Person{
public Man(){
System.out.println("Man...");
}
}
public class OlderMan extends Man{
public OlderMan(){
System.out.println("OlderMan...");
}
public static void main(String[] args){
OlderMan o = new OlderMan();
}
}
輸出結(jié)果:
Person...
Man....
OlderMan...
二、該使用繼承還是組合独令?
如果需要向上轉(zhuǎn)型端朵,那就用繼承!
三燃箭、final關(guān)鍵字
1冲呢、final修飾成員變量修飾基本類型,使數(shù)值恒定不變招狸。修飾引用類型敬拓,使引用恒定不變。一個(gè)被static 和 final 同時(shí)修飾的成員變量只占據(jù)一段不能改變的空間裙戏。
2恩尾、final修飾方法該方法無(wú)法被子類修改private隱式地被指定為final
3、final修飾類該類不可被繼承
四挽懦、初始化及類的加載
什么時(shí)候類會(huì)加載翰意?(Page 180的例程,對(duì)于理解類的加載過(guò)程很有幫助信柿,應(yīng)該回過(guò)頭多看幾遍)
答:創(chuàng)建類的第一個(gè)對(duì)象時(shí)冀偶;訪問(wèn)類的static成員變量或static方法時(shí)。
public class Children{
private static Parent p = new Parent();
private String str;
public Children(String str) {
this.str = str;
}
static{
System.out.println("first init...");
}
public static void init(){
System.out.println("init method....");
}
public static void main(String[] args) {
System.out.println("begin...");
/*Children c = new Children("abc");
Children c1 = new Children("fds");
Children.p.getStr();*/
// Children.init();
}
}
定義為static的成員只會(huì)被初始化一次渔嚷。