繼承:extends
語(yǔ)法:子類(lèi)的名字 extends 父類(lèi)的名字
父類(lèi):
public class Uncle {
? ? private String name;
? ? private int age;
? ? public void fahongbao(){
? ? ? ? System.out.println("舅舅發(fā)紅包");
? ? }
}
子類(lèi)一:
public class UncleOne extends Uncle{
? ? public void chouyan(){
? ? ? ? System.out.println("大舅喜歡抽煙");
? ? }
? ? public void fahongbao(){
? ? ? ? System.out.println("大舅家道中落玩焰,發(fā)不起紅包了牢裳,該送祝福了");
? ? }
}
子類(lèi)二:
public class UncleTwo extends Uncle{
? ? public void hejiu(){
? ? ? ? System.out.println("二舅喜歡喝酒");
? ? }
? ? //方法的重寫(xiě)? 復(fù)寫(xiě)? 覆寫(xiě)
? ? public void fahongbao(){
? ? ? ? System.out.println("二舅不僅發(fā)紅包還送茅臺(tái)");
? ? }
}
1.子類(lèi)能夠繼承到父類(lèi)所有的不是的私有的屬性和方法
2.子類(lèi)能夠復(fù)寫(xiě)父類(lèi)的方法辉川,如果沒(méi)有復(fù)寫(xiě),調(diào)用的是父類(lèi)的方法瘪弓,子類(lèi)一旦復(fù)寫(xiě),優(yōu)先調(diào)用復(fù)寫(xiě)后的方法
3.除了復(fù)寫(xiě)禽最,子類(lèi)可以擴(kuò)充父類(lèi)沒(méi)有的方法
優(yōu)點(diǎn):
1.實(shí)現(xiàn)代碼的復(fù)用
2.有利于子類(lèi)代碼的擴(kuò)展
多重繼承 不允許 語(yǔ)法錯(cuò)誤
public class Temp extends UncleOne,UncleTwo{
}
多層繼承:
public class Uncle {
? ? private String name;
? ? private int age;
? ? public void fahongbao(){
? ? ? ? System.out.println("舅舅發(fā)紅包");
? ? }
}
public class UncleOne extends Uncle{
? ? public void chouyan(){
? ? ? ? System.out.println("大舅喜歡抽煙");
? ? }
? ? public void fahongbao(){
? ? ? ? System.out.println("大舅家道中落腺怯,發(fā)不起紅包了,該送祝福了");
? ? }
}
public class UncleUneSon extends UncleOne{
? ? public void fahongbao(){
? ? ? ? System.out.println("大舅的兒子厲害了川无,接著發(fā)紅包");
? ? }
}
類(lèi)繼承的加載順序
先加載父類(lèi)在加載子類(lèi)
祖先類(lèi)的構(gòu)造方法最先執(zhí)行呛占,祖先類(lèi)最先被創(chuàng)建出來(lái),其次是父類(lèi)懦趋,最后是子類(lèi)
在構(gòu)造方法當(dāng)中會(huì)隱性的調(diào)用super()超類(lèi)? 父類(lèi)的無(wú)參構(gòu)造方法
final? 最終的最后的
被final修飾的成員不可以被改寫(xiě)
1.final修飾的變量值不能發(fā)生修改PI=3.1415
修飾基本類(lèi)型數(shù)據(jù)晾虑,其值不能發(fā)生改變;修改引用數(shù)據(jù)類(lèi)型仅叫,例如數(shù)組帜篇,數(shù)組中的值可以發(fā)生修改,但是數(shù)組名不能指向新的空間
2.final修飾的方法不能被重寫(xiě)
3.final修飾的類(lèi)不能被繼承