有关 .Net 继承的问题


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方法。

不,它只有一个Print方法,但它还有其他东西:它知道它的基类 Father ,它有自己的Print方法。这就是为什么Son可以访问两个Print - 它自己的和他的Father的。

相关内容

  • 没有找到相关文章

最新更新