抽象類和介面

2021-10-03 02:03:29 字數 1404 閱讀 5568

2、特性

與一般類不同的是,抽象類不能例項化。

用abstract關鍵字修飾class。

對屬性的操作和一般類一樣,無任何區別。

至於方法,可以有乙個或者多個抽象方法,用abstract修飾,且抽象方法不可以有方法體。也可以沒有抽象方法。

如下**就是乙個簡單的抽象類:

public abstract class human 

}

再來看看反編譯後的結果,唯一的區別就是自動生成了乙個無參的構造方法(所有類都是如此)。

public abstract class com.yxz.abstractandinte***cedemo.human
3、用法

public class doctor extends human 

}

反編譯後的結果:

public class com.yxz.abstractandinte***cedemo.doctor extends com.yxz.abstractandinte***cedemo.human
最後通過乙個測試類進行測試:

public class abstracttest 

}

從這裡可以看出,抽象類和子類可以實現多型的效果。

1、定義:介面是對行為的抽象,利用介面可以達到 api 定義和實現分離的目的。

2、特性

下面通過一段原始碼和反編譯結果進行驗證:

public inte***ce myinte***ce 

void method2();

}

反編譯後的結果

public inte***ce com.yxz.abstractandinte***cedemo.myinte***ce
接著通過乙個類來進行實現:

public class myimpl implements myinte***ce 

}

反編譯後的結果:

public class com.yxz.abstractandinte***cedemo.myimpl implements com.yxz.abstractandinte***cedemo.myinte***ce
由於method2是乙個抽象方法,從上面抽象部分得知,必須要對其進行實現。

最後通過乙個測試類進行測試:

public class impltest 

}

只所以說介面是特殊的抽象類,可以理解為是由於介面中除了靜態方法,其餘方法都是加了abstract的抽象方法。

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...