第七章:抽象類和接口

抽象類:
public abstract class Uncle {
    private String name ;
    private int age;

    //抽象方法
    public abstract void faHongbao();

    }
子類一:
public class UncleOne extends Uncle {
    public void faHongbao(){
        System.out.println("大舅發(fā)紅包,還送煙");
    }
}
子類二:
public class UncleTwo extends Uncle {
    public void faHongbao() {
        System.out.println("二舅發(fā)紅包,還送煙");
    }
}
### 關(guān)鍵點(diǎn):**

**語法: 1.抽象類的前面需要abstract關(guān)鍵字聲明**

              **2.抽象類至少有一個(gè)抽象方法**

#####     3.抽象方法需要abstract關(guān)鍵字修飾 

       子類必須要實(shí)現(xiàn)抽象類中的抽象方法
**接口 interface**
public interface Uncle {
    //在接口中聲明方法
    public void faHongbao();
}
子類一:implements父類的名字
public class UncleOne implements  Uncle{
    @Override
    public void faHongbao(){
        System.out.println("大舅發(fā)紅包");
    }
}
子類二:
public class UncleTwo implements Uncle {
    @Override
    public void faHongbao(){
        System.out.println("二舅送煙");
    }
}
1.關(guān)鍵字interface

2.接口中的方法只需聲明,不能有方法體,方法只能是共有的。

3.子類需要實(shí)現(xiàn)接口中的所有方法,實(shí)現(xiàn)的語法是implement接口名

## 例外:

1.可以寫公有的常量。

2.可以寫默認(rèn)的方法default修飾
public interface Uncle {
    //公有的常量
    public String chenhu = "舅舅";
    //在接口中聲明方法
    public void faHongbao();

    //不管那個(gè)舅舅都需要照顧老人,為了避免重復(fù),寫在接口中,default
    public default void zhaogulaoren(){
        System.out.println("每個(gè)舅舅都需要照顧老人");
    }
}
多重實(shí)現(xiàn):
//多繼承 (多重繼承)  多實(shí)現(xiàn) (多重實(shí)現(xiàn))

public class UncleTwo implements Uncle , Father {
    @Override
    public void faHongbao(){
        System.out.println("二舅送煙");
        System.out.println(chenhu);
    }
    @Override
    public void yangjia(){
        System.out.println("二舅也是一位父親,需要養(yǎng)家");
    }
}
多繼承(多重繼承)只有接口才可以一次繼承多個(gè)接口(多重繼承),類一次只可以繼承一個(gè)父類
// 多繼承(多重繼承) 只有接口才可以多重繼承
public interface Temp extends Uncle , GrandFather{ 
}
public class UncleThree implements Temp {
    @Override
    public void yangjia(){
    }
    @Override
    public void faHongbao() {
    }
    @Override
    public void zhaogulaoren(){
    }
    }
案例:
// 爺爺類 抽象的 有一個(gè)釣魚的抽象方法沒有實(shí)現(xiàn)
public abstract class Yeye {
    public abstract void diaoyu();
}
// 爸爸類 也是抽象的 從爺爺繼承來的抽象方法可以不實(shí)現(xiàn),也可以實(shí)現(xiàn)
public abstract class Baba extends Yeye {
    public abstract void tangtou();
}
// 叔叔類,標(biāo)準(zhǔn)的實(shí)體類,不是抽象類  繼承的父類中所有的抽象方法必須全部實(shí)現(xiàn)
public class Shushu extends  Yeye {
    @Override
    public void diaoyu(){
        System.out.println("靠譜的叔叔替爺爺完成了釣魚");
    }
}
// 孫子類  標(biāo)準(zhǔn)實(shí)體類不是抽象類,需要實(shí)現(xiàn)全部父類中累計(jì)沒有實(shí)現(xiàn)的所有抽象方法
public class Sunzi extends Baba {

    @Override
    public void tangtou(){
        System.out.println("替爸爸完成燙頭");
    }
    @Override
    public void diaoyu(){
        System.out.println("替爺爺完成釣魚");
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容