繼承是指在已存在的類的基礎上擴充套件產生新的類。已存在的類稱為基類(或父類、基類、超類),新產生的類稱為子類(或派生類)。
註解: 就相當於一位**會九陽真經,長虹貫日;其大徒弟,二徒弟在**不斷教導下也會九陽真經與長虹貫日。注意此處繼承與子承父業不完全一樣
繼承是物件導向程式設計的三大特徵(封裝、繼承和多型)之一,不具有繼承功能的語言不能稱之為物件導向程式設計語言(如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.重名成員變數在三處
區域性變數 :直接寫成員變數名main本類的成員變數 :this.成員變數名
父類的成員變數 :super.成員變數名
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...