c中父類能呼叫子類的方法嗎

2022-03-17 07:00:49 字數 971 閱讀 3594

1樓:畢芙笪庚

其實也不一定啊,父類可以通過例項呼叫子類繼承的父類的相應方法啊。

舉例(都是public):

class

father

}class

son:father

}然後執行這段**:

fatherf=

newfather();

sons

=new

son();

f.refer=s;

console.writeline(f.writesomething());

之後螢幕上就會顯示"inherted"這段字元了

2樓:瑞素花闢衣

我不太明白lz問題的意思,"父類"是父類的引用還是例項?

在這個例子下:

class

father{}

class

child

:father

}如果是例項,比如

father

fa=new

father();

那fa是不可以呼叫子類方法,邏輯上很容易得出結論,子類的方法可能呼叫到父類沒有的成員,顯然不可以呼叫.

如果是隻引用,而且所指例項是子類

father

ch=new

child();

那麼如下方法就可以呼叫子類方法了

(chas

child).method();

這種情況下,如果ch不是child的例項,那會丟擲異常(貌似是拋異常,lz自己實踐一下吧)。這是多型的一種基本實現方法。

3樓:杞奕琛芮淑

首先強調一點可以調僅僅可以調,不過如果這樣做的話就成了普通類之間的呼叫了。這種方法不可取,失去了is-a關係的意義!應為就繼承來說父類是優先於子類而存在的!

上面說了可以通過類的例項來掉用。不過就父類於子類這種關係來說是不允許父類呼叫子類的。

虛擬函式在子類中可以不實現嗎,C中父類中有純虛擬函式,在子類中需要實現,問題在子類的子類中也需要實現嗎

如果不是純虛擬函式,也就是基類不是抽象類的話,虛擬函式在子類中可以不實現 c 中父類中有純虛擬函式,在子類中需要實現,問題 在子類的子類中也需要實現嗎?子類中實現了,子子類就不用實現。子類沒實現的話,子子類就可能需要實現。反正沒有實現這個 0的函式的類是無法建立物件的。所以要例項化的類就要實現,c ...

C 中父類中含有虛擬函式,那麼子類中對其進行覆蓋的話,是不是需要返回值型別也一定相同

要覆蓋一個虛擬函式,那麼引數和返回值型別必須相同,否則不會覆蓋,只能過載!必須相同,否則在編譯時會報錯,指定了衝突的返回型別 c 中,類的繼承 父類當使用虛擬函式時候,子類對該函式進行重寫的話,屬於子類成員函式對虛擬函式的覆蓋!可以這麼理解。換句話說,你呼叫子類的虛擬函式,程式會執行你重寫的 而不是...

Java中的子類會繼承父類的所有成員嗎

給你看bai兩個例子 我剛敲的 第二個du例子 這兩zhi個例子的區別只有一句 dao話 由此證專明瞭子類從父類繼承的時候 如果有屬同名的成員變數 預設情況下 父類的成員變數是被遮蔽的 如果你非要呼叫父類的成員變數 請使用super關鍵字 不是的,私有成員繼承不了,構造方法也繼承不了 靜態方法 靜態...