小知识(四):继承_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 小知识(四):继承

小知识(四):继承

 2017/1/10 5:32:24  D梦  程序员俱乐部  我要评论(0)
  • 摘要:方法重写:基类方法标识virtual关键字,子类(继承类)中方法重写标识override关键字。重写的方法必须跟基类的类型相同,如方法名称、返回和接受参数。publicclassClass1{publicvirtualvoidshow(inti){……}}publicclassClass2:Class1{publicoverridevoidshow(inta){……}}New方法重写:publicclassClass1{protectedvirtualvoidshow(inti){……}
  • 标签:继承

方法重写:

    基类方法标识virtual关键字,子类(继承类)中方法重写标识override关键字。

    重写的方法必须跟基类的类型相同,如方法名称、返回和接受参数。

    public class Class1

    {

        public virtual void show(int i)

        {……}

    }

    public class Class2:Class1

    {

        public override void show(int a)

        {……}

    }

New方法重写:

    public class Class1

    {

        protected virtual void show(int i)

        {……}

    }

    public class Class2:Class1

    {

        public new int show(int a)

        {……}

    }

    new声明定义自己的同名方法。返回类型、访问类型可以不同于基类的同名方法。

    如果接受参数不同于基类同名方法时new关键字会多余,相当于一般重写(基类没有一样的方法,没有一样的隐藏方法)。

override重写基类方法(隐藏方法)的方法体,new重写基类同名方法(接收参数一样)。

终止继承:

    终止继承标识sealed。以下代码编译出错,Class2无法继承封闭类Class1

    public sealed class Class1

    {

        public virtual void show(int i)

        {……}

    }

    //public class Class2:Class1

    //{

    //    public override void show(int a)

    //    {……}

    //}

调用基类构造函数

    编译器先调用基类构造函数,再调用继承类构造函数。

    public class Class1

    {

        public Class1(int i , string j)

        {……}

    }

    public class Class2:Class1

    {

        public Class2(int i,string j,object obj):base(i,j)

        {……}

    }

发表评论
用户名: 匿名