第7章 面向?qū)ο蟾呒壧匦?020-02-23

繼承(inheritance):

也稱泛化绽榛,繼承性是子類自動共享父類屬性和方法的機制嗓节,在定義和實現(xiàn)一個類的時候臼节,可以在一個已經(jīng)存在的類的基礎(chǔ)之上來進行接剩,把這個已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容切厘,并加入自己若干新的內(nèi)容

繼承簡化了人們對事物的認識和描述,有益于軟件復(fù)用懊缺,是OO技術(shù)提高軟件開發(fā)效率的重要原因之一

是類之間的一種關(guān)系疫稿,一般類與特殊類之間的關(guān)系

繼承關(guān)系的語義:“is a kind of”

封裝(encapsulation):

所謂封裝是把對象的屬性和行為結(jié)合在一個獨立的系統(tǒng)單位內(nèi)部

盡可能隱蔽對象的內(nèi)部細節(jié),只向外部提供接口

降低對象間的耦合度

封裝的重要意義:

使對象能夠集中而完整地描述并對應(yīng)一個具體事物

體現(xiàn)了事物的相對獨立性鹃两,使對象外部不能隨意存取對象的內(nèi)部數(shù)據(jù)

多態(tài)(polymorphism):

指同一個命名可具有不同的語義

OO方法中遗座,常指在一般類中定義的屬性或方法被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為俊扳,對于子類途蒋,可用不同的方法替代實現(xiàn)父類的服務(wù)的方法


繼承的含義

在Java中定義一個類時,讓該類通過關(guān)鍵字extends繼承一個已有的類馋记,這就是類的繼承(泛化)号坡。

被繼承的類稱為父類(超類懊烤,基類),新的類稱為子類(派生類)宽堆。

子類繼承父類的所有屬性和方法腌紧,同時也可以增加自己的屬性和方法。

繼承的語法



繼承的含義

繼承的規(guī)則:

Java中只支持單繼承畜隶,也就是說每個類只能有一個父類壁肋,不允許有多重繼承

一個父類可以有多個子類

子類繼承父類所有的屬性和方法?

調(diào)用構(gòu)造方法:

在構(gòu)造方法中,可以使用this或super調(diào)用其他的構(gòu)造方法

super()

作用:調(diào)用父類的構(gòu)造器

只能出現(xiàn)在子類的構(gòu)造器中籽慢,且必須是第一行

super()中的參數(shù)浸遗,決定了調(diào)用父類哪個構(gòu)造器

如果子類構(gòu)造器中沒有出現(xiàn)super,那么編譯器會默認加上super()嗡综,即調(diào)用父類的空構(gòu)造器乙帮,如果父類沒有空構(gòu)造器,編譯器提示錯誤极景。

this()

作用:調(diào)用本類的構(gòu)造器

只能寫在構(gòu)造器的第一行

在同一個構(gòu)造器中super()和this()不能同時出現(xiàn)

類的繼承

子類實例化的過程

使用默認的構(gòu)造器

在子類中的創(chuàng)建構(gòu)造器? ? ? ? ?

在子類中創(chuàng)建構(gòu)造器時,必須調(diào)用父類的構(gòu)造器

子類可以在自己的構(gòu)造器中使用super關(guān)鍵字來調(diào)用父類的構(gòu)造器


如果使用super關(guān)鍵字調(diào)用父類構(gòu)造器驾茴,必須寫在該子類構(gòu)造器的第一行

如調(diào)用的是父類中無參的構(gòu)造器盼樟,則可以不寫super( )

如果子類中調(diào)用了父類無參的構(gòu)造器,而父類中沒有無參構(gòu)造器則系統(tǒng)編譯出錯

示例

package com.neusoft.test7;

//子類

public class Officer extends Employee{

// 使用this()? super()? 來調(diào)用 當(dāng)前類 或其父類的空參構(gòu)造

public Officer() {

super(5); //父類方法的空參構(gòu)造

System.out.println("Officer子類的空參構(gòu)造方法");

}

// public Officer(int i) {

//// super(); //父類方法的空參構(gòu)造

// System.out.println("Officer子類的空參構(gòu)造方法");

// }

public String type="Officer";

public? void show() {

System.out.println("兒子說:hello");

}

// 區(qū)分父與子之間 屬性與方法時:

// this指的是當(dāng)前類對象屬性及方法

// super指的是父類的屬性及方法

public void say() {

System.out.println("自己的屬性類型為:"+this.type);

System.out.println("父類的屬性類型為:"+super.type);

// 自己的show()

this.show();

// 父類show()

super.show();

// 子類繼承父類锈至,子類沒有重寫drink方法時晨缴,會將父類的drink方法繼承

this.drink();

}

}

----------

package com.neusoft.test7;

//子類

public class Officer extends Employee{

// 使用this()? super()? 來調(diào)用 當(dāng)前類 或其父類的空參構(gòu)造

public Officer() {

super(5); //父類方法的空參構(gòu)造

System.out.println("Officer子類的空參構(gòu)造方法");

}

// public Officer(int i) {

//// super(); //父類方法的空參構(gòu)造

// System.out.println("Officer子類的空參構(gòu)造方法");

// }

public String type="Officer";

public? void show() {

System.out.println("兒子說:hello");

}

// 區(qū)分父與子之間 屬性與方法時:

// this指的是當(dāng)前類對象屬性及方法

// super指的是父類的屬性及方法

public void say() {

System.out.println("自己的屬性類型為:"+this.type);

System.out.println("父類的屬性類型為:"+super.type);

// 自己的show()

this.show();

// 父類show()

super.show();

// 子類繼承父類,子類沒有重寫drink方法時峡捡,會將父類的drink方法繼承

this.drink();

}

}

----

測試類

package com.neusoft.test7;

public class Test1 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Officer o=new Officer();

// o.say();

}

}











抽象類與接口不同點

1.書寫上?抽象類?abstract?class?????接口是interface

2.?繼承使用extends關(guān)鍵字????實現(xiàn)接口使用implements關(guān)鍵字

3.抽象類?可以定義普通方法與抽象方法击碗,接口內(nèi)部只能定義抽象方法和被default?關(guān)鍵字修飾的普通方法

4.抽象類只能被單繼承??,接口可以被多實現(xiàn)

5.抽象類只能單繼承们拙,?接口之間可以多繼承

6.抽行類可以定義成員變量稍途,接口?只能定義靜態(tài)常量

7.設(shè)計上?屬于關(guān)系的設(shè)計為抽象類??????包含某一種功能?設(shè)計為接口

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市砚婆,隨后出現(xiàn)的幾起案子械拍,更是在濱河造成了極大的恐慌,老刑警劉巖装盯,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坷虑,死亡現(xiàn)場離奇詭異,居然都是意外死亡埂奈,警方通過查閱死者的電腦和手機迄损,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來账磺,“玉大人芹敌,你說我怎么就攤上這事共屈。” “怎么了党窜?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵拗引,是天一觀的道長。 經(jīng)常有香客問我幌衣,道長矾削,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任豁护,我火速辦了婚禮哼凯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘楚里。我一直安慰自己断部,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布班缎。 她就那樣靜靜地躺著蝴光,像睡著了一般。 火紅的嫁衣襯著肌膚如雪达址。 梳的紋絲不亂的頭發(fā)上蔑祟,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機與錄音沉唠,去河邊找鬼疆虚。 笑死,一個胖子當(dāng)著我的面吹牛满葛,可吹牛的內(nèi)容都是我干的径簿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼嘀韧,長吁一口氣:“原來是場噩夢啊……” “哼篇亭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乳蛾,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤暗赶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肃叶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹂随,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年因惭,在試婚紗的時候發(fā)現(xiàn)自己被綠了岳锁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蹦魔,死狀恐怖激率,靈堂內(nèi)的尸體忽然破棺而出咳燕,到底是詐尸還是另有隱情,我是刑警寧澤乒躺,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布招盲,位于F島的核電站,受9級特大地震影響嘉冒,放射性物質(zhì)發(fā)生泄漏曹货。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一讳推、第九天 我趴在偏房一處隱蔽的房頂上張望顶籽。 院中可真熱鬧,春花似錦银觅、人聲如沸礼饱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镊绪。三九已至,卻和暖如春纳胧,著一層夾襖步出監(jiān)牢的瞬間镰吆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工跑慕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摧找。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓核行,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹬耘。 傳聞我的和親對象是個殘疾皇子芝雪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348