<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 2055字,需瀏覽 5分鐘

           ·

          2021-01-14 14:26

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

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


          ?


          前言


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

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

          來(lái),干!


          問(wèn)題:

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

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


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


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

          可理解為:

          class 保溫杯 extends 水杯 implements 保溫

          用實(shí)例說(shuō)話

          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. //水杯使用說(shuō)明方法

          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+","+"我是用來(lái)刷牙的");

          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+","+"我是用來(lái)喝水的");

          12. }


          13. @Override

          14. public void baoWen() {

          15. System.out.println("我能對(duì)水杯里的水進(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)手冊(cè),覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。

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

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品成人久久久久久久 | 美女被草网站 | 国产一级视频在线 | 日本亚洲免费在线视频 | 苍井空视频免费一区二区三区 |