java-面向對象之繼承

1.繼承的概念

把多個類中相同的成員給提取出來定義到一個獨立的類中。然后讓這多個類和該獨立的類產(chǎn)生一個關系,多個類就具備了這些內(nèi)容。這個關系叫繼承蝴乔。
用extends關鍵字表示,格式: class 類名 extends 父類

2.繼承的好處

a: 提高了代碼的復用性;
b:提高了代碼的可維護性驮樊;
c:一個類繼承一個類是多態(tài)的前提薇正;

3.繼承的弊端

a:讓類的耦合性增強。這樣某個類的改變巩剖,就會影響其他和該類相關的類铝穷;
b:打破了分裝性;

4.java中繼承的特點

a:一個類只能繼承一個類佳魔,單繼承曙聂;
b:可以多層繼承,繼承體系鞠鲜;

5.繼承的注意事項

a:子類不能繼承父類的私有成員宁脊;
b:子類不能繼承父類的構造方法,但可以通過super()去調(diào)用贤姆;
c:不要為了部分功能而去繼承榆苞;

6.繼承中的成員關系

a:成員變量:
通過子類的方法訪問成員變量的順序:先找子類方法的局部范圍內(nèi)找,有就使用霞捡;再去子類的成員范圍找坐漏,有就使用;再去父類的成員范圍內(nèi)找碧信,有就使用赊琳;找不到就報錯;
b:構造方法:
子類的構造方法會默認調(diào)用父類的無參構造砰碴,是為了子類訪問父類數(shù)據(jù)的初始化躏筏,如果父類沒有無參構造,在子類構造方法中用super指定調(diào)用父類的帶參數(shù)的構造方法呈枉,或者是之類構造方法通過this調(diào)用自己的構造方法趁尼,這個被調(diào)用的構造方法一定會有一個訪問了父類的帶參構造方法埃碱;
c:成員方法:
通過子類對象訪問成員方法的順序:先在子類中找,有就使用酥泞;再去父類中找砚殿,有就使用;找不到報錯婶博;

7.Override和Overload的區(qū)別

Override方法重寫:在子類中出現(xiàn)了和父類中一模一樣的方法聲明的方法瓮具;
注意事項:
a:子類不能重寫父類的私有方法(因為私有方法不能被繼承)荧飞;
b:子類重寫父類方法時訪問權限不能更低凡人,最好一致;
c:父類靜態(tài)方法叹阔,子類也必須通過靜態(tài)方法進行重寫挠轴,其實這個算不上方法重寫,但是現(xiàn)象確實如此
Overload方法重載:在一個類中出現(xiàn)了方法名稱一樣的方法耳幢;

8.this和super

this:代表當前類的對象引用岸晦;
super:代表父類存儲空間的標識(可以理解為父類的引用,可以訪問父類的)

9.分析執(zhí)行結果

  • 1.案例
class Fu {
    static {
        System.out.println("靜態(tài)代碼塊Fu");
    }

    {
        System.out.println("構造代碼塊Fu");
    }

    public Fu() {
        System.out.println("構造方法Fu");
    }
}

class Zi extends Fu {
    static {
        System.out.println("靜態(tài)代碼塊Zi");
    }

    {
        System.out.println("構造代碼塊Zi");
    }

    public Zi() {
        System.out.println("構造方法Zi");
    }
}

class ExtendsTest2 {
    public static void main(String[] args) {
        Zi z = new Zi();
    }
}

分析:
a: 類加載的時候執(zhí)行靜態(tài)代碼塊睛藻,靜態(tài)代碼塊被優(yōu)先加載启上;
b:初始化子類的時候先初始化父類(分層加載);
c:靜態(tài)代碼塊構造代碼塊構造方法執(zhí)行順序:靜態(tài)代碼塊 > 構造代碼塊 > 構造方法店印;
輸出結果:
靜態(tài)代碼塊Fu
靜態(tài)代碼塊Zi
構造代碼塊Fu
構造方法Fu
構造代碼塊Zi
構造方法Zi

  • 2.案例
class F{
 A a = new A();
 F(){
   System.out.println("F1");
 }
 F(int age){
  System.out.println("F2");
 }
}
class Z extends F{
     A a = new A();
   Z(){
   //super(1); 這時執(zhí)行的是 F2
     System.out.println("Z");
   }
}
class A{
    A(){
        System.out.println("A");
    }
}
class ExtendsDemo1{
   public static void main(String[] args){
      new Z();
   }
}

分析:
a:類初始化過程:成員變量初始化-構造方法初始化冈在;
b:子類的初始化:先進行父類初始化,然后進行子類初始化(分層初始化)按摘;
輸出結果:
AF1AZ

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末包券,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子炫贤,更是在濱河造成了極大的恐慌溅固,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兰珍,死亡現(xiàn)場離奇詭異侍郭,居然都是意外死亡,警方通過查閱死者的電腦和手機掠河,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門亮元,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人口柳,你說我怎么就攤上這事苹粟。” “怎么了跃闹?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵嵌削,是天一觀的道長毛好。 經(jīng)常有香客問我,道長苛秕,這世上最難降的妖魔是什么肌访? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮艇劫,結果婚禮上吼驶,老公的妹妹穿的比我還像新娘。我一直安慰自己店煞,他們只是感情好蟹演,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顷蟀,像睡著了一般酒请。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸣个,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天羞反,我揣著相機與錄音,去河邊找鬼囤萤。 笑死昼窗,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的涛舍。 我是一名探鬼主播澄惊,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼做盅!你這毒婦竟也來了缤削?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤吹榴,失蹤者是張志新(化名)和其女友劉穎亭敢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體图筹,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡帅刀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了远剩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扣溺。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瓜晤,靈堂內(nèi)的尸體忽然破棺而出锥余,到底是詐尸還是另有隱情,我是刑警寧澤痢掠,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布驱犹,位于F島的核電站嘲恍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雄驹。R本人自食惡果不足惜佃牛,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望医舆。 院中可真熱鬧俘侠,春花似錦、人聲如沸蔬将。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娃胆。三九已至遍希,卻和暖如春等曼,著一層夾襖步出監(jiān)牢的瞬間里烦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工禁谦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胁黑,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓州泊,卻偏偏與公主長得像丧蘸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子遥皂,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

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

  • 繼承: 講學生和工人的共性描述提取出來力喷,單獨進行描述。只要讓學生和工人與單獨描述的這個類有關系演训,就可以了弟孟。 1、提...
    小宇java閱讀 133評論 0 0
  • 繼承: 講學生和工人的共性描述提取出來样悟,單獨進行描述拂募。只要讓學生和工人與單獨描述的這個類有關系,就可以了窟她。 1陈症、提...
    小宇java閱讀 279評論 0 0
  • 繼承: 講學生和工人的共性描述提取出來,單獨進行描述震糖。只要讓學生和工人與單獨描述的這個類有關系录肯,就可以了。 1吊说、提...
    小宇java閱讀 232評論 0 0
  • 面向對象筆記 一论咏、 對象在內(nèi)存中的存放方法以及被調(diào)用過程 class文件首先被加載到方法區(qū)中的class文件內(nèi)容區(qū)...
    VictorBXv閱讀 469評論 0 2
  • 1 面向對象No6 面向對象 OO Object Oriented 編程時以對象為單元于样,封裝數(shù)據(jù)和邏輯,以此提...
    征程_Journey閱讀 1,154評論 0 2