C#的继承以及继承中的构造方法 您所在的位置:网站首页 构造方法不能被继承的原因有哪些 C#的继承以及继承中的构造方法

C#的继承以及继承中的构造方法

2024-07-15 14:58| 来源: 网络整理| 查看: 265

C#继承

继承是个啥 简单的理解就是,让a类去继承b类,那么a类就会有b类中的属性,变量,方法,但不会继承b类的构造方法(相关构造方法的问题,下面再解释),当a类继承b类后,a类称作b类的子类,而b类称作a类的父类,还有其他的叫法,比如a对应派生类,b对应基类。

举个例子,假若写了一个动物类,其中包含年龄的属性,然后再写一个狗类去继承这个动物类,狗类中写入品种属性,当你调用狗类时,可以访问到品种以及年龄。

继承的代码格式 一个类要继承另一个类,那么在其声明时采用如下格式 class A :B{} 表示A类继承自B类,拿上面那个例子做个代码演示如下:

class Animal { int age; } class Dog : Animal { String Varieties; }

继承的特点 第一:在上面也说了,子类继承父类以后,拥有父类的属性,变量,方法 第二:子类不会继承父类的构造方法 第三:一个类仅可继承自一个父类(大部分面向对象语言都是这样,但也有例外) 第四:一个类可被多个子类所继承 第五:用关键词sealed修饰的类不可被继承

C#继承的构造方法

子类实例化规则 在子类实例化时,先去实例化其父类部分,再去实例化子类的附加部分

子类实例化与构造方法的关系 由于实例化这个过程是要调用构造方法的,所以根据子类实例化规则,子类实例化时应先调用父类的构造方法将父类部分实例化出来,而默认是去调用父类的无参构造方法,因此当父类中写入且仅写入一个有参构造方法时,继承其的子类直接使用构造方法实例化会报错,因为调用不到无参构造方法。

继承中构造方法冲突的解决方案

在父类中再写入一份无参的构造方法,哪怕其方法体为空也可以。让子类的构造方法之前执行父类的构造方法,使用以下格式让其实现

使一个方法在执行前调用另一个方法 修饰词 方法A() : 方法B() {方法体;} 以上格式意为在方法A执行前调用方法B; 有关方法B的一些关键词与操作:this代表当前类体,base代表父类类体;

下面再用上面的例子做一个代码演示,去演示子类中构造方法之前调用父类的有参构造方法

class Program { static void Main(string[] args) { Dog hsq = new Dog(6, "HSQ"); } } class Animal { public int age; public Animal(int age1) { age = age1; } } class Dog : Animal { public string Varieties; public Dog(int a, string s) : base(a) { Varieties = s; } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有