區(qū)別方法重寫(覆蓋)和方法重載?
方法重寫:方法名字、參數(shù)列表和返回類型必須相同。類中只允許出現(xiàn)一次這樣的方法,要接著往子類當(dāng)中寫入。類中的方法覆蓋,父類和子類都可以相同。
方法重載:方法名字相同,參數(shù)列表必須要不同,返回類型隨意。構(gòu)造器就是典型的方法重載。
this和super關(guān)鍵字的用法:this表示的本類的方法和成員;super表示父類的方法和成員。this()和super()都必須放在一個(gè)方法的開(kāi)頭。
如果子類構(gòu)造器中沒(méi)有顯式地調(diào)用父類構(gòu)造器,也沒(méi)有使用this關(guān)鍵字調(diào)用重載的其他構(gòu)造器,則系統(tǒng)默認(rèn)調(diào)用父類無(wú)參數(shù)的構(gòu)造器,super()。
塊執(zhí)行:
在一個(gè)類中有初始化塊要先執(zhí)行,然后再是構(gòu)造器。
如:
public class Test
{
??? String name;
?????int age;
?????String sex;
?????public Test()
?????{
??????????System.out.println("Test1被調(diào)用");
??????????sex ="Male";
??????????System.out.println("name="+name+" ,age="+age+" ,sex="+sex);
??????}
?????public Test(String theName)
?????{??
??????????System.out.println("Test2被調(diào)用");
??????????name = theName;
??????????System.out.println("name="+name+" ,age="+age+" ,sex="+sex);
?????}
?????{
??????????name = "Tony Blair";
??????????age = 50;
??????????sex = "Female";
??????????System.out.println("Test初始化塊執(zhí)行后:name="+name
???????????+" ,age="+age+" ,sex="+sex);
??????}?
??????public static void main(String args[])
???? {??
?????????? Test t=new Test();
??????}
}