物件導向之_繼承概念
1,如果多個類具有相同的屬性和行為,我們可以抽取出共性的內容定義父類,這時再建立相似的類時只要繼承父類即可。
子類擁有父類的所有屬性與方法,無需重新定義。並且可以直接使用非私有的父類成員。
從邏輯關係來看,子類必須屬於父類的一種時,才應該繼承,且在原有基礎上進行功能擴充套件。
繼承關係的產生通常是為了定義出功能更為具體、更為強大的子類。所以,定義子類後,一般建立子類物件使用。子類可以直接使用父類非私有的成員變數與成員方法。
(注:如果成員變數沒有使用private修飾,則子類也可直接訪問。)
2,Java當中的繼承格式:
public class 子類 extends 父類{
//父類的非私有方法與屬性均繼承過來,可以直接呼叫
//可以在父類的基礎上擴充套件方法
}
如:
父類的定義:
public class Person{
//父類的成員變數
private String name;
//父類的方法
public void eat(){
System.out.println(“吃飯”);
}
}
子類繼承父類的定義:
public class Chinese extends Person{
//繼承的同時,可以定義子類特有的方法
public void sleep() {
System.out.println(“睡覺”);
}
}
3,繼承注意事項
- Java只支援單繼承,不支援多繼承。即只能有一個父類。
- 父類可以繼續有父類。
- 所有類均有父類,只有Object類沒有父類。
- 在所有使用父類型別的地方均可以傳入其子類物件。
- 子類訪問父類非私有化成員變數
4.繼承後記憶體圖
以Person類為例:
定義父類
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private int age;
}
定義子類
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Chinese extends Person{
private Stirng address;
}
定義測試類,使用子類建立物件
public class Test{
Chinese c = new Chinese();
}
相關文章
- 物件導向之繼承物件繼承
- 21. 物件導向之繼承物件繼承
- 物件導向--繼承物件繼承
- 物件導向:繼承物件繼承
- 物件導向-繼承物件繼承
- 《JavaScript物件導向精要》之五:繼承JavaScript物件繼承
- 物件導向 -- 三大特性之繼承物件繼承
- java學習——物件導向之繼承Java物件繼承
- Golang物件導向_繼承Golang物件繼承
- java物件導向繼承Java物件繼承
- Javascript物件導向與繼承JavaScript物件繼承
- Java物件導向03——三大特性之繼承Java物件繼承
- Java中物件導向三大特性之繼承Java物件繼承
- Javascript實現物件導向繼承JavaScript物件繼承
- 說清楚javascript物件導向、原型、繼承JavaScript物件原型繼承
- JavaScript物件導向 ~ 原型和繼承(1)JavaScript物件原型繼承
- JavaScript物件導向那些東西-繼承JavaScript物件繼承
- JAVA物件導向高階一:繼承Java物件繼承
- 5-Java物件導向-繼承(下)Java物件繼承
- JavaScript物件導向—繼承的實現JavaScript物件繼承
- Dart語法篇之物件導向繼承和Mixins(六)Dart物件繼承
- Python - 物件導向程式設計 - 三大特性之繼承Python物件程式設計繼承
- JS物件導向程式設計(四):繼承JS物件程式設計繼承
- JS物件導向:JS繼承方法總結JS物件繼承
- python物件導向的繼承-組合-02Python物件繼承
- java-物件導向程式設計--繼承Java物件程式設計繼承
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- JS的物件導向(理解物件,原型,原型鏈,繼承,類)JS物件原型繼承
- ~~核心程式設計(五):物件導向——多繼承~~程式設計物件繼承
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- JavaScript物件導向之二(建構函式繼承)JavaScript物件函式繼承
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- 理解Js中物件導向程式設計的繼承JS物件程式設計繼承
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- 「MoreThanJava」Day 5:物件導向進階——繼承詳解Java物件繼承
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- Golang物件導向程式設計之繼承&虛基類【組合&介面】Golang物件程式設計繼承
- JavaScript之物件繼承JavaScript物件繼承