物件導向的三大特徵 繼承性 一

2021-10-02 18:24:44 字數 2485 閱讀 6862

繼承是指在已存在的類的基礎上擴充套件產生新的類。已存在的類稱為基類(或父類、基類、超類),新產生的類稱為子類(或派生類)。

註解: 就相當於一位**會九陽真經,長虹貫日;其大徒弟,二徒弟在**不斷教導下也會九陽真經與長虹貫日。注意此處繼承與子承父業不完全一樣 

繼承是物件導向程式設計的三大特徵(封裝、繼承和多型)之一,不具有繼承功能的語言不能稱之為物件導向程式設計語言(如vb)。其中解決的主要問題就是:共性抽取。

註解:模擬一下學校中,對於學校領導,老師,員工,他們都存在姓名與工號(這些就是可以繼承的內容),但是他們每個人所在學校的行為卻不一樣(這就是他們自己專有的內容。 

package cn.kobe.day01.demo01;

/*在繼承關係中:「子類就是乙個父類」。也就是說,子類可以被當作父類看待。

例如:父類是員工,子類是講師,那麼「講師就是乙個員工」。

關係:is-a (speaker is a employee.)

定義父類的格式:(乙個普通的類定義)

public class 父類名稱

定義子類的格式:

public class 子類名稱 extends 父類名稱

*/public class demoextend

直接訪問,訪問誰就直接呼叫誰。

package cn.kobe.day01.demo01;

public class demonum_main

}

father類

package cn.kobe.day01.demo01;

public class father

sun類 

package cn.kobe.day01.demo01;

public class sun extends father

結果 

10

1020

在父子類的繼承關係當中,如果成員變數重名,則建立子類物件時,訪問有兩種方式:

直接通過子類物件訪問成員變數:等號左邊是誰就直接訪問誰,沒有則向上找;

間接通過成員方法訪問成員變數:該方法屬於誰就優先用誰,沒有就想上找。

1.重名成員變數乙個在父類,乙個在子類

main

package cn.kobe.day01.demo01;

public class demonum_main

}

father

package cn.kobe.day01.demo01;

public class father

}

sun

package cn.kobe.day01.demo01;

public class sun extends father

}

結果

10

1020

***************===

200***************===

200100

2.重名成員變數在三處

區域性變數 :直接寫成員變數名

本類的成員變數 :this.成員變數名

父類的成員變數 :super.成員變數名

main

package cn.kobe.day01.demo02;

/*區域性變數 直接寫成員變數名

本類的成員變數 this.成員變數名

父類的成員變數 super.成員變數名*/

public class demonumfiled

}

father

package cn.kobe.day01.demo02;

public class father

sun

package cn.kobe.day01.demo02;

public class sun extends father

}

在父類的繼承關係當中,建立子類物件,訪問成員方法的規則:

建立的物件是誰就優先用誰,沒有則向上找。

無論是成員方法還是成員變數,如果沒有,都是向上找,絕對不會向下找子類

物件導向的三大特徵 繼承性 五

如果父類當中的方法不確定如何進行 方法體實現,那麼就應該是乙個抽象方法。就是加上abstract關鍵字,然後去掉大括號,直接分號結束。抽象方法所在的類必須是抽象類。操作 在class之前寫上abstract即可。不能直接建立new抽象類物件 必須用乙個子類來繼承抽象父類 子類必須覆蓋重寫抽象父類的所...

GO 物件導向 繼承性

首先我們需要定義父級的結構體和方法 然後在寫孩子的結構體和方法 從而就會有三種形式 在學到這一步貌似go的繼承比php的要簡單的多 go的繼承只需要把父級的結構體名直接放到裡邊就行 繼承後可以訪問父級的屬性和方法 也可以訪問自己的專有屬性 同時還擁有重寫父級方法 所有案例都配備有 直接扔進去就可以執...

物件導向三大特徵 繼承

繼承 提高 的復用性 避免 重複 修改父類,影響所有的子類 增加了耦合性 如果乙個類沒有指定父類,預設父類是object,object類是所有類的父類 單繼承 乙個類只能有乙個父類 c 可以多繼承 可以多層繼承 1 編寫父類 public class person public void setna...