本文目錄一覽:
- 1、Java中類A繼承類B,B類中有個protected的方法methodC,請問子類可以直接用this.關鍵字調用方法methodC嗎?
- 2、java中A繼承B,B繼承C,那麼C是A的父類嗎?C是A的超類嗎?
- 3、java中定義一個類可以同時繼承兩個類
Java中類A繼承類B,B類中有個protected的方法methodC,請問子類可以直接用this.關鍵字調用方法methodC嗎?
如你所說A extends B
我幫你把代碼模擬粗來
public class B
{
protected void methodC()
{
// TODO you codes here…
}
}
public class A extends B
{
}
這個分兩種情況
子類A中沒有Override父類方法,可以使用this:
public class A extends B
{
void yourmethod()
{
this.methodC();
//直接 methodC() 也可以
}
}
2. 子類中Override了父類方法,一定要使用super:
否則調用的將是本類中的方法而非父類
public class A extends B
{
public void yourmethod()
{
super.methodC(); //調用父類
}
@Override //覆蓋時標籤表上Override,這是個好的編程習慣
public void methodC()
{
// TODO your codes here…
// super.methodC() 這可以調用上一級的methodC()方法,而不是本methodC
// 如果不是使用super,而且本來沒有這樣的意願
// 那麼就會陷入一個偽死循環,並會在很多情況下拋出StackOverFlow
}
}
期望對你有用!
java中A繼承B,B繼承C,那麼C是A的父類嗎?C是A的超類嗎?
可以說C是A的間接父類,B才是A的直接父類,java是單繼承的, 一個類有且只能有一個直接父類,但是並不限制繼承的層數,也就是間接父類可以有n多個
java中定義一個類可以同時繼承兩個類
java中一個類不能直接繼承兩個類。
比如說這樣:class A extends B,C
不能這樣寫,因為java不支持多繼承,但是可以像下面這樣實現繼承多個類:
class A extends B
class C extends A
這樣C就同時繼承了B和A兩個類。
擴展資料
當子類繼承了某個類之後,便可以使用父類中的成員變數,但是並不是完全繼承父類的所有成員變數。具體的原則如下:
1)能夠繼承父類的public和protected成員變數;不能夠繼承父類的private成員變數;
2)對於父類的包訪問許可權成員變數,如果子類和父類在同一個包下,則子類能夠繼承;否則,子類不能夠繼承;
3)對於子類可以繼承的父類成員變數,如果在子類中出現了同名稱的成員變數,則會發生隱藏現象,即子類的成員變數會屏蔽掉父類的同名成員變數。如果要在子類中訪問父類中同名成員變數,需要使用super關鍵字來進行引用。
原創文章,作者:0M6OZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127978.html
微信掃一掃
支付寶掃一掃