淺談Java Interface__Java

來源:互聯網
上載者:User

      對於Java初學者來說,可能會有這樣一個疑惑----我們定義了一個介面,但是我們在實現這個介面的類中,還要實現介面中的所有方法,那還不如直接就在這個類中寫實現方法,豈不更便捷,還省去定義介面麻煩。那麼介面在Java中的作用到底是什麼呢。

      1、定義

           介面是由一組相關的空方法構成的。

      2、作用

         介面是個規範。因為它可能要被多個類去實現,程式怎麼知道他們是有關聯的呢。既然不是一個類去實現,那麼是有很多地方有用到,大家需要統一標準。甚至有的程式設計語言(Object-)已經不把介面叫interface,直接叫protocol。

        統一標準的目的,是大家都知道這個是做什麼的,但不需要知道具體怎麼做。比如,Comparable找個介面是用來比較兩個對象的,那麼如何比較呢。

        數字有數位比較方法,字串有字串的比較方法,學生(自己定義的類)也有自己的比較方法。

       軟體開發中一個很重要的一個理念就是“解耦”,介面和介面實現就是在幹這件事,定好規範,任你實現,效率可高,可低,實現內容也可隨時間變化而變化,但是調用關係是不變的。

    3、優點:

       (1)程式是可拓展的。你在修改你具體的實作類別的時候,不需要去修改調用它的類;這個呢,是java編程時候強調的“對拓展開放,對修改關閉”原則。當然這也是java多態性的體現。

       (2)就是java通過Interface實現多繼承。繼承的一個好處就是代碼的複用,減少代碼錯誤。

    4、生活執行個體

  (1)假如我開了一個寵物糧店,聲明所有寵物都可以來我這裡買糧食,這就相當於一個介面。

      public interface PetRestaurant{ 

                    public void buy();

             }

       當一隻狗看到了,知道自己是寵物,所以它去實現這個介面

     public class DogPet implements PetRestaurant{

          @Override

          public void buy(){

            System.out.println("我是狗,我要買狗糧");

           }

}

當一隻貓看到了,知道自己是寵物,所以它去實現這個介面

     public class CatPet implements PetRestaurant{

          @Override

          public void buy(){

            System.out.println("我是貓,我要買貓糧");

           }

} 當狗和貓來我的店之前,我是不知道他們到底是什麼,但是當他們來到我的店,我就知道一個要貓糧,一個要狗糧。因為他們都實現了我這個介面,都可以買。

下面這個類相當於一個接待顧客的類,即店小二,他接待所有實現了我這個寵物店介面的動物,傳進來一個PetRestaurant類型的寵物,注意,這個PetRestaurant是介面

public class test{

            public  void buy(PetRestautrant pet){

                        pet.buy();

              }

}

好了,這個時候我這個老闆出現了,我可以給他們賣糧食了,相當於測試類別

public class Tests{

public static void  main(String[] args){

  test t=new test();

   PetRestaurant dog=new DogPet();

  PetRestaurant cat=new CatPet();

  t.buy(dog);

  t.buy(cat);

}

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.