关于.Net继承的问题

时间:2012-10-06 02:49:05

标签: c# .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在方法表中拥有两个打印方法。其中一个可以被父访问,anthor可以自己访问吗? 哪一个是对的?或者两者都不对?请告诉我!谢谢!

1 个答案:

答案 0 :(得分:4)

  

谁创造了它?显然不是我

是什么让你这么肯定?你当然可以:

Son s = new Son();
  

Son在方法表中拥有两个Print方法。

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