虚方法 Base 什么意思,怎么用?

虚方法是什么意思,里面的Base是调用被实现方法的的吗?

今天突然有个做java的同时突然问了这么一个问题,当时我也无语不知道怎么回答?然后我就查了下资料

虚方法:

对于非虚的方法,无论被其所在类的实例调用,还是被这个类的派生类的实例调用,方法的执行方式不变。而对于虚方法,它的执行方式可以被派生类改变,这种改变是通过方法的重载来实现的。

   Base:

base 关键字用于从派生类中访问基类的成员:

调用基类上已被其他方法重写的方法。

  • 指定创建派生类实例时应调用的基类构造函数。

基类访问只能在构造函数、实例方法或实例属性访问器中进行。

从静态方法中使用 base 关键字是错误的。

所访问的基类是类声明中指定的基类。 例如,如果指定 class ClassB : ClassA,则无论 ClassA 的基类如何,从 ClassB 上访问 ClassA 的成员。

namespace TestBase
{
    public class BaseClass
    {
        int num;


        public BaseClass()
        {
            Console.WriteLine("in BaseClass()");
        }


        public BaseClass(int i)
        {
            num = i;
            Console.WriteLine("in BaseClass(int i)");
        }


        public int GetNum()
        {
            return num;
        }
    }


    public class DerivedClass : BaseClass
    {
        // 调用BseeCalss的 BaseClass()方法
        public DerivedClass()
            : base()
        {
        }


        // 调用BseeCalss的 BaseClass(int i)方法
        public DerivedClass(int i)
            : base(i)
        {
        }


        static void Main()
        {
            DerivedClass md = new DerivedClass();
            DerivedClass md1 = new DerivedClass(1);
            Console.ReadLine();
        }
    }
 
}

这个是 简单的实现,下次就可以 让他看我博客了

         


posted @ 2011-11-10 10:21  likunran  阅读(308)  评论(0编辑  收藏  举报