public class Father
{
// static string TYPE = "FATHER";
public Father()
{
//Console.WriteLine("ctor");
}
public virtual void Print()
{
Console.WriteLine("I'm father");
}
}
public class Son:Father
{
public override void Print()
{
base.Print();
Console.WriteLine("I'm son");
}
}
众所周知,如果我们调用 Son.Print(),它会打印出"我是父亲"和"我是儿子"。而 Father.Print() 是一个实例方法,我们需要先创建一个实例。所以这就是问题所在,谁创造了它?显然,不是我...或者 Son 在方法表中拥有两个打印方法。其中一个可以由父亲访问,安托尔可以自己访问吗?哪一个是对的?还是两者都不对?请告诉我!谢谢!
谁创造了它?显然不是我
是什么让你如此肯定?当然,您确实会:
Son s = new Son();
或者
Son
在方法表中拥有两个
不,它只有一个Print
方法,但它还有其他东西:它知道它的基类 Father
,它有自己的Print
方法。这就是为什么Son
可以访问两个Print
- 它自己的和他的Father
的。