···
語法:子類的名字extends 父類的名字
父類
package com.company;
public class UncleOne extends Uncle{
public void chouyan(){
System.out.println("大舅抽煙");
}
public void fahongbao(){
System.out.println("");
}
}
子類二:
package com.company;
public class UncleTwo extends Uncle{
public void hejiu(){
System.out.println("二舅000");
}
// 方法的重寫 復(fù)寫 覆寫
public void fahongbao(){
System.out.println("二舅送");
}
}
1.子類能夠繼承到父類所有的不是的私有屬性和方法
2.子類能夠復(fù)寫父類的方法箕肃,如果沒有復(fù)寫上渴,調(diào)用的是父類的方法,子類一旦復(fù)寫,優(yōu)先調(diào)用復(fù)寫后的子類方法
3.除了復(fù)寫啄巧,子類可以擴充父類沒有的方法
優(yōu)點:
1.實現(xiàn)代碼的復(fù)用
2.有利于子類代碼的擴展
多層繼承
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 UncleOneSon extends UncleOne{
public void fahongbao(){
System.out.println("大舅的兒子");
}
}
類繼承的加載順序
先加載父類,在加載子類
祖先類的構(gòu)造方法最先執(zhí)行掌栅,祖先類最早被創(chuàng)建出來秩仆,其次是父類,最后是子類
在構(gòu)造方法當中會隱性的調(diào)用super()超類 父類的無參構(gòu)造方法
final 最終的 最后的
被final修飾的成員不可以被改寫
-
final修飾的變量值不能發(fā)生修改 PI=3.1415
修飾基本數(shù)據(jù)類型猾封,氣質(zhì)不能發(fā)生改變澄耍;修改引用數(shù)據(jù)類型,例如數(shù)組晌缘,數(shù)組中的值可以發(fā)生修改齐莲,但是數(shù)組名不能指向新的空間
final修飾的方法不能被重寫
final修飾的類不能被繼承
多態(tài)
一個父類有多個子類
把子類的對象賦值給父類的過程叫做向上轉(zhuǎn)型
把父類的對象賦值給子類的過程叫做向下轉(zhuǎn)型
語法:
正常語法:
類名 對象名 = new類名();
向上轉(zhuǎn)型:
父類的類型 對象名 = new 子類的類名();
向下轉(zhuǎn)型:
子類類型 對象名 = (子類類型) 父類的對象
// 向上轉(zhuǎn)型
Uncle uncleOne1 = new UncleOne();
uncleOne1.fahongbao();
Uncle uncleTwo2 = new UncleTwo();
uncleTwo2.fahongbao();
//向下轉(zhuǎn)型
Uncle uncle = new Uncle();
UncleOne temp =(UncleOne) uncle;
instanceof
判斷對象是否是一個類的實例(具體的對象)
public class Demo02 {
public static void main(String[] args) {
UncleOne dajiu = new UncleOne();
ganhuo(dajiu);
UncleTwo erjiu = new UncleTwo();
ganhuo(erjiu);
}
public static void ganhuo( Uncle uncle){
if ( uncle instanceof UncleOne){
System.out.println("出門外干活");
}else if( uncle instanceof UncleTwo){
System.out.println("在室內(nèi)干活");
}else {
System.out.println("傳入的不是舅舅,老太太沒辦法");
}
}
}
···