18、繼承以及繼承中成員變數和成員方法的重名問題
繼承
繼承類別寫法:
定義父類格式:
public class 父類名稱{
//…
}
定義子類格式://extends 擴大;擴充套件
public class 子類名稱 extends 父類名稱{
//…
}
父類子類中訪問成員變數的規則:(父類子類中變數重名問題)
在父子類的繼承關係中,如果成員變數重名,則建立子類物件時,訪問有兩種方式:
-
直接通過子類物件訪問成員變數
規則:等號左邊時誰,就優先用誰,沒有則向上找 -
間接通過成員方法訪問成員變數
規則:該方法屬於誰,就優先用誰,沒有就向上找
區域性變數、本類的成員變數、父類的成員變數三者的重名問題
區域性變數:直接寫成員變數名
本類的成員變數:this.成員變數名
父類的成員變數名:super.成員變數名
//父類
public class Fu {
int num=20;//父類中的num
}
//子類
public class Zi extends Fu {
int num=10;//子類中的num
public void method(){
int num=30;//區域性變數num
System.out.println(num);//區域性30
System.out.println(this.num);//子類10
System.out.println(super.num);//父類20
}
}
成員方法的重名問題:
在父子類的繼承關係中,建立子類物件,訪問成員方法的規則:
- 建立物件是誰,就優先用誰,如果沒有就向上找。
- 無論是成員方法還是成員變數,如果沒有都是向上找父類,絕對不會向下找子類的。
public class Fu {
public void methodFu(){
System.out.println("父類方法執行");
}
public void method(){
System.out.println("父類重名方法執行");
}
}
public class Zi extends Fu{
public void methodZi(){
System.out.println("子類方法執行");
}
public void method(){
System.out.println("子類重名方法執行");
}
}
public class Demo {
public static void main(String[] args) {
Zi zi = new Zi();
zi.methodZi();//
zi.methodFu();//子類中沒有就上父類中找
zi.method();//子類重名方法執行,建立的是子物件,所以優先用子物件中的method()
}
}
相關文章
- Java繼承中成員變數的訪問特點「圖文分析」包含繼承中重名訪問的特點Java繼承變數
- 類&成員可見性&繼承繼承
- #JAVA#物件導向(繼承中成員方法的關係)Java物件繼承
- oop類的繼承與類靜態成員學習OOP繼承
- python入門基礎(14)--類的屬性、成員方法、靜態方法以及繼承、過載Python繼承
- 繼承關係裡的六個預設成員函式繼承函式
- 繼承問題繼承
- 讓你看懂dart中靜態成員和繼承|8月更文挑戰Dart繼承
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- 『無為則無心』Python物件導向 — 55、多層繼承和繼承中的私有成員Python物件繼承
- delegate 繼承問題繼承
- [20231101]tmux環境變數的繼承問題.txtUX變數繼承
- 18-oop繼承OOP繼承
- C++中公有繼承、保護繼承、私有繼承的區別C++繼承
- 菱形繼承,虛繼承繼承
- 原型,繼承——原型繼承原型繼承
- Java中變數之區域性變數、本類成員變數、父類成員變數的訪問方法Java變數
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- 學習Java中遇到的繼承問題Java繼承
- 多繼承 與 多重繼承繼承
- 原型和繼承原型繼承
- JS中的繼承JS繼承
- java中的繼承Java繼承
- PostgreSQL中的繼承SQL繼承
- JavaScript中的繼承JavaScript繼承
- Solidity中的繼承Solid繼承
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- es5繼承和es6類和繼承繼承
- 類的繼承_子類繼承父類繼承
- dubbo繼承springboot出現的問題繼承Spring Boot
- 繼承繼承
- ES6中的類繼承和ES5中的繼承模式詳解繼承模式
- Python中的繼承和多型Python繼承多型
- JavaScript中的繼承和組合JavaScript繼承
- 成員變數變數
- js實現繼承的方法以及優缺點JS繼承
- 繼承關係和魔術方法繼承