抽象類別和介面

來源:互聯網
上載者:User

標籤:

public abstract class MyClass {     public int constInt = 5;     //add code here     public void method() {     }}

Apublic abstract void method(int a);

B constInt = constInt + 5;

C public int method();

D public abstract void anotherMethod() {}

答案:A

解析:考察抽象類別的使用。

抽象類別遵循的原則:

(1)abstract關鍵字只能修飾類和方法,不能修飾欄位。(2)抽象類別不能被執行個體化(無法使用new關鍵字建立對象執行個體),只能被繼承。(3)抽象類別可以包含屬性,方法,構造方法,初始化塊,內部類,枚舉類,和普通類一樣,普通方法一定要實現,變數可以初始化或不初始化但不能初始化後在抽象類別中重新賦值或操作該變數(只能在子類中改變該變數)。(4)抽象類別中的抽象方法(加了abstract關鍵字的方法)不能實現。(5)含有抽象方法的類必須定義成抽象類別。 擴充:抽象類別和介面的區別,做個總結吧:

(1)介面是公開的,裡面不能有私人的方法或變數,是用於讓別人使用的,而抽象類別是可以有私人方法或私人變數的。

(2)abstract class 在 Java 語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。但是,一個類卻可以實現多個interface,實現多重繼承。介面還有標識(裡面沒有任何方法,如Remote介面)和資料共用(裡面的變數全是常量)的作用。

(3)在abstract class 中可以有自己的資料成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態不能被修改的資料成員(也就是必須是 static final的,不過在 interface中一般不定義資料成員),所有的成員方法預設都是 public abstract 類型的。

(4)abstract class和interface所反映出的設計理念不同。其實abstract class表示的是"is-a"關係,interface表示的是"has-a"關係。

(5)實現介面的一定要實現介面裡定義的所有方法,而實現抽象類別可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類別實現介面,最後才到具體類實現。抽象類別中可以有非抽象方法。介面中則不能有實現方法。

(6)介面中定義的變數預設是public static final 型,且必須給其初值,所以實作類別中不能重新定義,也不能改變其值。抽象類別中的變數預設是 friendly 型,其值可以在子類中重新定義,也可以在子類中重新賦值。

抽象類別和介面

聯繫我們

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