最佳解答者
繼承的觀念,為什麼同時擁有父的物件和子的物件

問題
解答
-
你的 class a 與 public int a、class b 與 private int b,會混淆
(以下假設 Class A 與 Class B : A)
(1)
既然你知道 private int b 不可以被 B 繼承,那 B 又怎麼會有 b,且 A 的 b 既然是 private 又 B 如何知道 b?
(2)
既然是 Class B : A ,所以 B 擁有 A 的方法與變數
public int a
public void M1() {}
Class B 擁有自己類別的方法
private void M2() {}
但是你 new 出來的 B 物件不能使用 M2 方法...
(3)
分別試試看
A a = new A();
B b = new B();
A a = new B();
分別可以存取什麼東西...
所有回覆
-
大大你好,以上貼的Code很草帥,抱歉
base就是父裡頭的物件,這個我沒有問題
this就是指現在這個class,我也沒有問題
我也不是沒看書,就上來亂問一通
書上寫著
程式碼區塊class a
{
public int aa;
private int bb;(只有public 才能被繼承的概念我了解)
public void M1();
}
class b:a
{
private M2();
}
class b除了擁有自己的成員,還擁有class a的aa與MI
因為書上這樣寫,所以我就以為宣告class b時就擁有
程式碼區塊public int aa;
private int bb;
public void M1();
private M2();
可是卻發現
class b不只擁有這些還擁有class a的一份,class b的一份
程式碼區塊//a
public int aa;
private int bb;
public void M1();
//b
public int aa;
private int bb;
public void M1();
private M2();
所以才發現自己從書上讀來的繼承觀念有錯
才想請教大大,
還請大大們幫忙,謝謝
-
你的 class a 與 public int a、class b 與 private int b,會混淆
(以下假設 Class A 與 Class B : A)
(1)
既然你知道 private int b 不可以被 B 繼承,那 B 又怎麼會有 b,且 A 的 b 既然是 private 又 B 如何知道 b?
(2)
既然是 Class B : A ,所以 B 擁有 A 的方法與變數
public int a
public void M1() {}
Class B 擁有自己類別的方法
private void M2() {}
但是你 new 出來的 B 物件不能使用 M2 方法...
(3)
分別試試看
A a = new A();
B b = new B();
A a = new B();
分別可以存取什麼東西...