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.介面...