關於抽象方法與介面

2021-08-02 19:14:42 字數 881 閱讀 7449

抽象方法是一種特殊的方法:它只有宣告,而沒有具體的實現。

抽象類不一定必須含有抽象方法

,但是不符合抽象類設計模式。也可以擁有成員變數和普通的成員方法。

設計乙個抽象類,為了繼承而存在。

抽象類不能建立物件,卻有構造方法,乙個類繼承抽象類,並不一定要覆寫超類(父類)的抽象方法,派生類(子類)分配堆區的方法指標將指向抽象類的方法,也就實現了抽象類的方法。即使父類不能例項化物件,子類例項化物件訪問了並執行父類的方法。

抽象方法為public或者

protected。

介面中可以有變數和方法,介面中的變數會被隱式地指定為public static final變數,方法會被隱式地指定為

public abstract

方法且只能是

public abstract

方法,介面是一種極度抽象的型別。

介面支援多繼承,也只有介面支援多繼承

非抽象類遵循了某個介面,就必須實現該介面中的所有方法,抽象類implements了介面,可以不實現該介面中的抽象方法,但是派生類

extends

了該抽象類,(父類沒有覆寫介面中的任何一種方法)就一定要覆寫介面中的抽象方法。

如果抽象類覆寫了介面的抽象方法,則派生類可以不用覆寫該介面的方法。

抽象類中的成員變數可以是各種型別的,而介面中的成員變數只能是public static final型別的。

介面中只能存在靜態的不可變的成員資料(不過一般都不在介面中定義成員資料),而且它的所有方法都是抽象的。

抽象類可以提供成員方法的實現細節,

介面中不能含有靜態**塊以及靜態方法,而抽象類可以有靜態**塊但不能有靜態方法;

可以使用 instanceof 檢查乙個物件是否實現了某個特定的介面。

抽象方法與介面

抽象類不能例項化,而且必須被子類繼承,子類需要實現所有的方法。介面是乙個特殊的類,由抽象方法和全域性常量組成 public static final 介面卡設計模式 inte ce window public void close public void icon public void unico...

關於抽象類 抽象方法以及介面

abstract修飾 抽象類不能被例項化,抽象類裡可以包含抽象方法也可以不包含 但有抽象方法的類必須是抽象類。抽象類可以包含 含有抽象方法的類,包括 只能定義為抽象類。利用抽象方法和抽象類的優勢,可以更好地發揮多型的優勢,使得程式更加靈活 abstract和final不能同時修飾同乙個類或方法 當使...

關於抽象類與抽象方法

using system using system.collections.generic using system.linq using system.text using system.data using system.drawing using system.componentmodel u...