我有四類:如何停止分配派生類對象的基類指針
class Base
{
public void printf()
{
Console.WriteLine("I am from base !!!");
}
}
class DerivedA : Base
{
public void printf()
{
Console.WriteLine("I am from derived A !!!");
}
}
class DerivedB : Base
{
public void printf()
{
Console.WriteLine("I am from derived B !!!");
}
}
class testProgram
{
public void print(Base baseClass)
{
baseClass.printf();
}
}
我的目標是當我執行下面的代碼,在第4行,必須再給我編的錯誤。
testProgram tP = new testProgram();
tP.print(baseClass);
tP.print(derivedA);
tP.print(derivedB);
我需要做什麼改變?
什麼從3號線的區別呢? – Servy 2014-09-25 14:57:16
不要繼承Base。問題解決了。如果您需要更多幫助,請提供更多信息,但如果派生類無法替代您的基礎,則看起來似乎存在設計問題。 – 2014-09-25 14:57:45
請包含編譯器錯誤。 「它給了我一個錯誤」沒有幫助。 – Gutblender 2014-09-25 14:59:32