1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        抽象類和接口在什么情況下適用?

        共 2055字,需瀏覽 5分鐘

         ·

        2021-01-14 14:26

        點(diǎn)擊上方“程序IT圈”,選擇“設(shè)為星標(biāo)

        我們一起學(xué)編程!


        ?


        前言


        上篇文章《抽象類不能實(shí)例化》中,我在文章最后順嘴提了一下接口,就是當(dāng)時(shí)講抽象類的時(shí)候說接口也是抽象類,是個(gè)特殊的抽象類。

        結(jié)果怎么著,那個(gè)學(xué)弟又問我了:“學(xué)長,抽象類和接口有什么區(qū)別呢?”

        來,干!


        問題:

        到底什么時(shí)候該用抽象類,什么時(shí)候該用接口呢?

        如何區(qū)分使用抽象類和接口


        大家在比較抽象類和接口的區(qū)別時(shí),一定要強(qiáng)調(diào)抽象類描述的是事物的本質(zhì),而接口描述的是事物的功能。


        比如:保溫杯是水杯,所以水杯應(yīng)該設(shè)計(jì)為抽象類,保溫杯有保溫的功能,所以保溫應(yīng)該設(shè)計(jì)為接口。

        可理解為:

        class 保溫杯 extends 水杯 implements 保溫

        用實(shí)例說話

        1. package zmldemo;

        2. //水杯抽象類

        3. public abstract class Cup {

        4. String name;//水杯名稱

        5. String color;//水杯顏色


        6. public Cup() {

        7. }


        8. public Cup(String name, String color) {

        9. this.name = name;

        10. this.color = color;

        11. }

        12. //水杯使用說明方法

        13. public abstract void useCup();

        14. }


        1. package zmldemo;

        2. //保溫接口

        3. public interface BaoWen {

        4. //保溫方法

        5. public void baoWen();

        6. }


        1. package zmldemo;

        2. //刷牙杯

        3. public class ShuaYaBei extends Cup {

        4. public ShuaYaBei() {

        5. }


        6. public ShuaYaBei(String name, String color) {

        7. super(name, color);

        8. }


        9. @Override

        10. public void useCup() {

        11. System.out.println("我是"+this.color+"的"+this.name+","+"我是用來刷牙的");

        12. }

        13. }


        1. package zmldemo;

        2. //保溫杯

        3. public class BaoWenBei extends Cup implements BaoWen{


        4. public BaoWenBei(){


        5. }

        6. public BaoWenBei(String name,String color){

        7. super(name,color);

        8. }



        9. @Override

        10. public void useCup() {

        11. System.out.println("我是"+this.color+"的"+this.name+","+"我是用來喝水的");

        12. }


        13. @Override

        14. public void baoWen() {

        15. System.out.println("我能對水杯里的水進(jìn)行保溫");

        16. }

        17. }


        1. package zmldemo;


        2. public class CupTest {

        3. public static void main(String[] args) {

        4. ShuaYaBei shuaYaBei = new ShuaYaBei("刷牙杯","紅色");

        5. shuaYaBei.useCup();


        6. BaoWenBei baoWenBei = new BaoWenBei("保溫杯","金黃色");

        7. baoWenBei.useCup();

        8. baoWenBei.baoWen();



        9. }

        10. }

        運(yùn)行結(jié)果:

        我想看完這個(gè)例子,抽象類和接口大家應(yīng)該能理解了。


        —————END—————


        推薦閱讀:



        最近面試BAT,整理一份面試資料Java面試BAT通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

        獲取方式:點(diǎn)“在看”,關(guān)注公眾號并回復(fù)?666?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

        明天見(??ω??)??
        瀏覽 22
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            中国特黄色片 | 麻豆AV无码久久精品蜜桃久久 | 日本色妞 | 发情淫色精品网 | 林熙蕾胸被揉到高潮后不让我吃奶 | 好操吊 | 欧美日日 | 午夜成人一区 | 亚洲高清免费视频 | 国产精品久久久久久久久久 |