您的位置:首页 > 编程语言 > C#

C#基础巩固——成员函数(属性)的abstract、override、virtual关键字

2017-07-08 21:07 393 查看
virtual关键字:表示声明当前函数为虚函数。

虚函数在声明时必须显示声明virtual关键字,虚函数必须具有函数主体(与普通函数无差别)。虚函数在派生类中可以重写,也可以不重写。

    public class MyBaseClass

    {

        //定义虚函数

        public virtual string VirtualMethod()

        {

            return "this is virtual method";

        }

    }

 

    public class MyDerivedClass:MyBaseClass

    {

        //重写虚函数(非必须)

        public override string  VirtualMethod()

        {

            return "1";

        }        

    }

 

abstract关键字:表示当前函数为抽象函数。

抽象函数不能直接实现,不能具有函数主体,声明必须写在abstract声明的抽象类中。抽象函数本身也是虚函数,但是不能声明关键字virtual。抽象函数在派生类中必须重写。

    public abstract class MyBaseClass

    {

        //定义抽象函数

        public abstract string AbstractMethod();

    }

 

    public class MyDerivedClass:MyBaseClass

    {

        //重写抽象函数(必须)

        public override string  AbstractMethod()

        {

            return "1";

        }

}

 

override关键字:表示对基类的函数进行重写。

重写关键字只能写在派生类中,并且仅能重写基类中使用virtual、abstract或override关键字声明的函数,函数名称必须与基类中对应函数的名称完全相同。重写函数在派生类中可以再次重写,也可以不重写。

    public class Baseclass

    {

        public virtual string OverrideMethod()

        {

            return "0";

        }

    }

 

    public abstract class MyBaseClass:Baseclass

    {

        //定义抽象函数

        public abstract string AbstractMethod();

        //定义虚函数

        public virtual string VirtualMethod()

        {

            return "this is virtual method";

        }

        //定义override声明的函数

        public override string OverrideMethod()

        {

            return "this is override method";

        }

    }

 

    public class MyDerivedClass:MyBaseClass

    {

        //重写抽象函数(必须)

        public override string  AbstractMethod()

        {

            return "重写抽象函数";

        }

        //重写虚函数(非必须)

        public override string VirtualMethod()

        {

            return "重写虚函数";

        }

        //重写override声明的函数(非必须)

        public override string OverrideMethod()

        {

            return "重写重写函数";

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐