JAVA 繼承

繼承就是子類繼承父類的特征和行為,使得子類對象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。繼承是通過extends關(guān)鍵字進(jìn)行的

繼承過程中的問題

```

package animal;

public class Animal {

int weight = 888;

public void eat() {

System.out.println("Animal eat");

}

public int getWeight() {

return weight;

}

public void setWeight(int weight) {

this.weight = weight;

}

}

```

```

package animal;

public class Cat extends Animal {

int weight = 1000;//與父類的變量名相同

public String string = "hahhahha";

@Override

public void eat(){

System.out.println("Cat eat");

}

public void jump(){

System.out.println("Cat jump");

}

@Override

public int getWeight() {

return weight;

}

@Override

public void setWeight(int weight) {

this.weight = weight;

}

public String getString() {

return string;

}

}

```

```

import animal.Animal;

import animal.Cat;

public class Main {

public static void main(String[] args) {


Animal animal = new Cat();//父類對象引用指向子類對象

System.out.println(animal.toString());

animal.eat();//執(zhí)行的是Cat中的方法

System.out.println(animal.getWeight());//由于override了父類方法。調(diào)用的Cat中的方法,因此輸出的是1000。如果需要訪問父類的weight需要通過super關(guān)鍵字 (super.weight)

// animal.jump(); 會提示jump方法未定義向上轉(zhuǎn)型時會遺失與父類對象不同的方法,而變量不會遺失

Cat cat = (Cat) animal;//向下轉(zhuǎn)型,在編譯時是不會報錯的,運(yùn)行時可能會出現(xiàn)ClassCastException。

System.out.println(cat.toString());

}

}

```

運(yùn)行結(jié)果:

animal.Cat@6bc7c054

Cat eat

1000

animal.Cat@6bc7c054


運(yùn)行結(jié)果表明:animal中指向的是cat對象。而由于cat繼承自animal因此擁有animal所有非private的方法和變量。但由于是animal的引用,因此無法使用cat中與父類不同的方法。

最后建議:在需要override方法時,加上@Override的注解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名: 李小娜 [嵌牛導(dǎo)讀]:這篇文章主要介紹了java繼承示例詳解,需要的朋友可以參考下 [嵌牛鼻子]:什么是繼...
    n184閱讀 734評論 0 0
  • 父類 static 塊 1 執(zhí)行 父類 靜態(tài)成員staticSam1初始化 父類 靜態(tài)成員staticSam2初始...
    YCix閱讀 1,399評論 0 0
  • 前天上班,我還在朋友群里炫耀,我專注工作了一小時,因?yàn)殚_始要工作的時候,我用了秒表,因?yàn)槲抑皇窍胫牢业膶Wr間有...
    微光綺夢閱讀 414評論 0 3
  • (一) 玄武門之變后,有人向秦王李世民告發(fā),東宮有個官員,名叫魏征,曾經(jīng)參加過李密和竇建德的起義軍,李密和竇建德失...
    楊仁珮001閱讀 570評論 0 0
  • 司馬騰 時間管理踐行者 專注力360創(chuàng)始人 中國SMJ時間管理術(shù)第一人 早睡早起247天 時間管理第124篇文章 ...

友情鏈接更多精彩內(nèi)容