java教程之java繼承示例詳解

姓名: 李小娜

[嵌牛導(dǎo)讀]:這篇文章主要介紹了java繼承示例詳解,需要的朋友可以參考下

[嵌牛鼻子]:什么是繼承(extends) ??

[嵌牛提問]:訪問控制符都有哪些直砂?

[嵌牛正文] :什么是繼承(extends)粒梦?

繼承是:新定義的類是從已有的類中獲取屬性和方法的現(xiàn)象唯袄。 這個已有的類叫做父類, 從這個父類獲取屬性和方法的類叫做子類工坊。

ExtendsDemo1.java

/*什么是繼承*/

public class ExtendsDemo1 {

public static void main(String[] args) {

Truck t = new Truck();

t.size = 100;? ? ? ? ? //不建議這么寫献汗。初始化成員變量最好使用構(gòu)造方法,或者提供set(), get()接口.

//貨車類的一個實(shí)例t從汽車類從繼承了size, color屬性王污。

//而貨車比汽車多一個貨箱

}

}

class Car {? ? ? ? ? ? ? ? ? ? //汽車

int size;? ? ? ? ? ? ? ? ? //車體大小

String color;? ? ? ? ? ? ? //顏色

}

class Truck extends Car {? ? ? //貨車

String packingBox;? ? ? ? ? //貨箱

}

繼承的好處

1. 提高了代碼的重用性

2. 讓類和類之間產(chǎn)生了關(guān)系罢吃, 為多態(tài)創(chuàng)造了條件。

繼承(extends)的格式

class SubClass extends SuperClass {

//執(zhí)行語句昭齐;

}

super關(guān)鍵字

1. super關(guān)鍵字和this的用法相同

2. this代表本類引用尿招, super代表父類引用

3. 當(dāng)子類和父類出現(xiàn)同名成員的時候, 可以用super 和 this進(jìn)行區(qū)分

SuperDemo.java

/* super的用法

* 輸出結(jié)果:

* super.i = 10, this.i = 20

*/

public class SuperDemo {

public static void main(String[] args) {

new SubClass().showMessage();

}

}

class SuperClass {

int i = 10;

}

class SubClass extends SuperClass {

int i = 20;

public void showMessage() {

System.out.printf("super.i = %d, this.i = %d\n", super.i, this.i);

}

}

對從父類繼承過來的方法進(jìn)行重寫(Override)

1. 當(dāng)子類中出現(xiàn)與父類一模一樣的方法(返回值阱驾, 函數(shù)名就谜, 形參)時, 會出現(xiàn)重寫(Override)操作.

OverrideDemo1.java

/* 怎么對從父類繼承過來的方法進(jìn)行重寫(Override)

* 輸出結(jié)果:

* SuperClass: I am good~

* SubClass: I am excellent~~~

*/

public class OverrideDemo1 {

public static void main(String[] args) {

SubClass sc = new SubClass();

sc.speak();

}

}

class SuperClass {

public void speak() {

System.out.println("SuperClass: I am good~");

}

}

class SubClass extends SuperClass {

@Override? ? ? ? ? ? ? ? ? //@Override表示下面出現(xiàn)的方法會出現(xiàn)重寫操作里覆,由編譯器檢查丧荐,如果達(dá)不到重寫的條件,就會報(bào)錯喧枷。一定程度上增加了代碼的安全性

和健壯性

public void speak() {

super.speak();

System.out.println("SubClass: I am excellent~~~");

}

}

2. 在對父類方法進(jìn)行重寫(Override)操作的時候虹统,子類不允許出現(xiàn)與父類同名同參但是不同返回類型的方法.

OverrideDemo2.java

/* 子類中不允許出現(xiàn)與父類同名同參但是不同返回類型的方法

* 出錯信息:

* OverrideDemo.java:20: error: f() in SubClass cannot override f() in SuperClass

*? public int f() {

*? ? ? ? ? ? ? ? ^

*? ? ? ? ? ? ? ? ? return type int is not compatible with void

*? ? ? ? ? ? ? ? ? OverrideDemo.java:19: error: method does not override or implement a method from a supertype

*? ? ? ? ? ? ? ? ? ? ? @Override

*? ? ? ? ? ? ? ? ? ? ? ? ? ^

*? ? ? ? ? ? ? ? ? ? ? ? ? 2 errors

*/

public class OverrideDemo2 {

public static void main(String[] args) {

}

}

class SuperClass {

public void f() {

}

}

class SubClass extends SuperClass {

@Override

public int f() {

return 1;

}

}

3. 子類重寫父類的方法的訪問權(quán)限要大于或者等于父類中被重寫的方法

OverrideDemo3.java

/* 子類重寫父類的方法的訪問權(quán)限要大于或者等于父類方法的訪問權(quán)限

* 出錯信息:

* OverrideDemo.java:18: error: f() in SubClass cannot override f() in SuperClass

*? protected void f() {

*? ? ? ? ? ? ? ? ? ? ^

*? ? ? ? ? ? ? ? ? ? ? attempting to assign weaker access privileges; was public

*? ? ? ? ? ? ? ? ? ? ? 1 error

*/

public class OverrideDemo3 {

public static void main(String[] args) {

}

}

class SuperClass {

public void f() {

}

}

class SubClass extends SuperClass {

@Override

protected void f() {? ? ? ? ? ? //把這里的訪問權(quán)限改為public即可

}

}

訪問控制符

訪問控制符有:public, protected, default, private

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市隧甚,隨后出現(xiàn)的幾起案子车荔,更是在濱河造成了極大的恐慌,老刑警劉巖呻逆,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夸赫,死亡現(xiàn)場離奇詭異,居然都是意外死亡咖城,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門呼奢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宜雀,“玉大人,你說我怎么就攤上這事握础》” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵禀综,是天一觀的道長简烘。 經(jīng)常有香客問我苔严,道長,這世上最難降的妖魔是什么孤澎? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任届氢,我火速辦了婚禮,結(jié)果婚禮上覆旭,老公的妹妹穿的比我還像新娘退子。我一直安慰自己,他們只是感情好型将,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布寂祥。 她就那樣靜靜地躺著,像睡著了一般七兜。 火紅的嫁衣襯著肌膚如雪丸凭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天腕铸,我揣著相機(jī)與錄音贮乳,去河邊找鬼。 笑死恬惯,一個胖子當(dāng)著我的面吹牛向拆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酪耳,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼浓恳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碗暗?” 一聲冷哼從身側(cè)響起颈将,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎言疗,沒想到半個月后晴圾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡噪奄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年死姚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勤篮。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡都毒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碰缔,到底是詐尸還是另有隱情账劲,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站瀑焦,受9級特大地震影響腌且,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜榛瓮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一铺董、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榆芦,春花似錦柄粹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至崎淳,卻和暖如春堪夭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拣凹。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工森爽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚣镜。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓爬迟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親菊匿。 傳聞我的和親對象是個殘疾皇子付呕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 多態(tài) 任何域的訪問操作都將有編譯器解析,如果某個方法是靜態(tài)的跌捆,它的行為就不具有多態(tài)性 java默認(rèn)對象的銷毀順序與...
    yueyue_projects閱讀 944評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理徽职,服務(wù)發(fā)現(xiàn),斷路器佩厚,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法姆钉,類相關(guān)的語法,內(nèi)部類的語法抄瓦,繼承相關(guān)的語法潮瓶,異常的語法,線程的語...
    子非魚_t_閱讀 31,644評論 18 399
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡單原理和應(yīng)用闺鲸。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,594評論 1 114
  • 接到通知說筋讨,時間管理第二個30天的實(shí)踐結(jié)束該交第二份月度檢視了的時候, 我不僅深深地呼吸了一氣摸恍,心情有點(diǎn)復(fù)雜,有些...
    詹妮特閱讀 206評論 0 0