C#继承|继承中构造函数的调用
2014-06-15 00:05
211 查看
继承:在C#中所有的类都是继承自Object类的。子类从父类那里继承到的有:属性,方法,并没有继承父类私有的字段。
继承的两个特性:
1.单根性:即一个有且只能继承自一个父类。
2.传递性:即如果父类继承了爷爷类,孙子类继承了父类,那么孙子也继承了爷爷类的属性和方法。
继承中,构造函数调用的问题:
在子类继承父类的过程中个,继承的有父类的属性和方法,但是没有继承父类的构造函数。
当在存在继承关系的子类中创建一个子类的对象的时候,子类会首先自动调用父类的那个默认的无参数的构造函数;如果在父类中已经写了一个有参数的构造函数,那么父类的默认的无参数的构造函数就没有了,那么在子类的构造函数中就会编译报错,解决的办法有两种:
1.在父类中加入无参数的构造函数。
2.在子类中显示的调用父类的构造函数,使用关键字:base.
继承的两个特性:
1.单根性:即一个有且只能继承自一个父类。
2.传递性:即如果父类继承了爷爷类,孙子类继承了父类,那么孙子也继承了爷爷类的属性和方法。
继承中,构造函数调用的问题:
在子类继承父类的过程中个,继承的有父类的属性和方法,但是没有继承父类的构造函数。
当在存在继承关系的子类中创建一个子类的对象的时候,子类会首先自动调用父类的那个默认的无参数的构造函数;如果在父类中已经写了一个有参数的构造函数,那么父类的默认的无参数的构造函数就没有了,那么在子类的构造函数中就会编译报错,解决的办法有两种:
1.在父类中加入无参数的构造函数。
2.在子类中显示的调用父类的构造函数,使用关键字:base.
//定义的一个人类
public class Person { string _name; public string Name { get { return _name; } set { _name = value; } } int _age; public int Age { get { return _age; } set { _age = value; } } char _gender; public char Gender { get { return _gender; } set { _gender = value; } } public Person() { } /// <summary> /// 父类有参数的构造函数 /// </summary> /// <param name="name"></param> /// <param name="age"></param> /// <param name="gender"></param> public Person(string name, int age, char gender) { this.Name = name; this.Age = age; this.Gender = gender; } }
public class Student : Person { int _id; public int Id { get { return _id; } set { _id = value; } } /// <summary> /// 显示的调用父类的构造函数 /// </summary> /// <param name="name"></param> /// <param name="age"></param> /// <param name="gender"></param> /// <param name="id"></param> public Student(string name, int age, char gender, int id) : base(name, age, gender) ///使用关键字base 显示的调用父类的构造函数,从而在子类实例化对象的时候,给父类中的字段进行赋值初始化。 { this.Id = id; } }
相关文章推荐
- c# 的继承,继承类实例化的时候,会先调用基类的构造函数,然后再调用自己的构造函数,base 的用法,有override和没有override的区别
- C#继承与构造函数的调用
- C#继承与构造函数的调用
- C#类的继承,构造函数实现及其调用顺序
- 关于C#中派生类调用基类构造函数的理解
- 类继承中构造函数和析构函数的调用
- Java继承时构造函数的调用
- JAVA C# 构造函数调互相调用(构造函数调用另一个构造函数)的不同
- 类继承中构造函数和析构函数的调用
- C#几个例子[静态构造函数,继承,虚方法]
- C#在构造函数中调用构造函数的方法(语法)
- DEMO[C#]关于类构造函数的调用顺序的一点补充[针对书C#入门经典所举范例的不足]
- C# 类继承,构造函数 实例
- c#过程中遇到的关于构造函数和继承的问题
- 关于C#中派生类调用基类构造函数的理解[转]
- [继承]4.子类基类构造函数的调用
- 继承与构造函数的调用
- 类继承中构造函数和析构函数的调用
- 类继承中构造函数和析构函数的调用
- 类继承中构造函数和析构函数的调用