更新時間:2020-07-15 16:13:55 來源:動力節點 瀏覽2380次
Java中類的繼承
繼承是面向對象三大特征之一,三大特征分別為封裝、繼承、多態
繼承的基本作用是:代碼復用。有了繼承之后才有“方法覆蓋”和“多態機制”。
繼承語法格式:
【修飾符列表】class類名extends父類名{
類體=屬性+方法
}
java中只支持單繼承,一個類只能繼承一個類,不能同時繼承多個類。
子類繼承父類
子類、派生類——subclass
父類、基類、超類——superclass
子類繼承父類哪些數據?
——私有的不支持繼承
——構造方法不支持繼承
——其他數據都可被繼承
public?class?Inherit?{
private?String?name;?????????//用于繼承
public?Inherit(){
????????this(null);
????}
????public?Inherit(String?name)?{
????????this.name?=?name;
????}
????public?String?getName()?{
????????return?name;
????}
????public?void?setName(String?name)?{
????????this.name?=?name;
????}
}
public?class?InheritTest?extends?Inherit{???//繼承了Inherit中的getname和setname方法}
public?class?Test?{
????public?static?void?main(String[]?args){
????????InheritTest?i?=?new?InheritTest();
????????i.setName("jack"); //通過InheritTest類來調用Inherit類的setname和getname方法
????????System.out.println(i.getName());
}
}
雖然java中只支持單繼承,但一個類可間接繼承其他類,如:
C extends B{
}
B extends A{
}
A extends T{
}
C類直接繼承B類,間接繼承A、T類
在測試繼承的時候出現了 ‘InheritTest.this’ cannot be referenced from a static context 的問題,這屬于內部類調用問題,因為非靜態變量類型不能在靜態上下文中引用。將內部類改為static,問題解決。
public?class?InheritTest{
????public?static?void?main(String[]?args){
????????C?c?=?new?C();
????????c.dosome();
????}
????static?class?A?{
????????public?void?dosome(){
????????????System.out.println("調用了該方法11");
????????}
????}
????static?class?B?extends?A{
????????public?void?dosome(){
????????????System.out.println("調用了該方法22");
????????}
????}
????static?class?C?extends?B{
????}
}
//運行結果:
調用了該方法22
Process?finished?with?exit?code?0
假設一個類沒有顯示繼承任何類,該類默認繼承javaSE庫中的java.lang.Object類
(補充)如果父類實現了某一個接口,則子類繼承父類會自動實現這個接口,已經實現的方法也會繼承過來;如果父類是個抽象類,則需要子類重寫實現接口的方法。
以上就是動力節點java培訓機構的小編針對“初學者需要學會的Java繼承類”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習