Java基礎-四要素之一《抽象》(介面)

來源:互聯網
上載者:User

標籤:

抽象的概念就是抽象出共同屬性:成員變數和方法

 

定義抽象使用abstract關鍵字定義抽象類別和方法

 

 

 

抽象類別 abstract class
 包含抽象方法的類,叫抽象類別。

所以抽象類別可以有private等多種許可權的成員變數和非abstract的成員方法。當然抽象方法是一定要有的。

 

抽象類別是用於單一繼承的,不能執行個體化

  而繼承類一定要實現抽象方法,因為抽象方法在抽象類別裡是沒有實現行為的,存取權限只能是public。而非抽象方法則可以賦予方法的預設行為,存取權限可以多種,但需要考慮非抽象方法是否需要被繼承類訪問。

 

 

 

介面 interface 
  介面,用於多重繼承,也不能執行個體化。只能包含static final的成員變數,不過在interface中一般不定義成員變數。而成員方法在介面裡只能是抽象方法,存取權限只能是public。

 

 

 

 所以,無論抽象類別還是介面,抽象方法都需要在子類中實現,而且在子類中實現這些方法一個都不能少。而抽象類別裡面的非抽象方法,則在子類可以不重寫實現裡面的行為

public class Child extends Children implements Lover{     public Child(String name) {         super(name);     }      public void printName() {         System.out.println(super.getName());     }      public void love(String name) {         System.out.println(name + ", I love you!");     }      public static void main(String[] args) {         Child boy = new Child("Charley");         System.out.println(boy.getName());          Child girl = new Child("Queenie");         girl.printName();          boy.love(girl.getName());         girl.love(boy.getName());     } }  abstract class Children {     private String name;      public Children(String name) {         this.name = name;     }      //private then Child obj can not access this method     //private String getName() {     public String getName() {         return name;     }      abstract void printName();      //haha()在子類中沒有被實現     //abstract void haha(); }  interface Lover{     void love(String name); } 

 

 

 

 

 Java介面和Java抽象類別的區別

   1,抽象類別裡可以有構造方法,而介面內不能有構造方法。   2,抽象類別中可以有普通成員變數,而介面中不能有普通成員變數。
public String pas ;//介面中定義會報錯

 

   3,抽象類別中可以包含非抽象的普通方法,而介面中所有的方法必須是抽象的,不能有非抽象的普通方法。   4,抽象類別中的抽象方法的訪問類型可以是public ,protected和預設類型,但介面中的抽象方法只能是public類型的,並且預設即為public abstract類型。   5,抽象類別中可以包含靜態方法,介面內不能包含靜態方法。   6,抽象類別和介面中都可以包含靜態成員變數,抽象類別中的靜態成員變數的訪問類型可以任意,但介面中定義的變數只能是public  static類型,並且預設為public static類型。   7,一個類可以實現多個介面,但只能繼承一個抽象類別。

 

 

 

 

在應用上的區別:

     介面更多的是在系統架構設計方法發揮作用,主要定義模組之間的通訊,而抽象類別在代碼實現方面發揮作用,可以實現代碼的重用

 

Java基礎-四要素之一《抽象》(介面)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.