面向对象的第二大特性:继承。
*定义
继承定义了类如何相互关联,共享特性。继承的工作方式是,定义父类和子类,即基类和派生类,其中,子类继承父类的所有特性,而且,可以定义新的特性,因此子类可理解为对父类的特殊化。
对象的继承代表了一种“is-a”的关系,如果对象A和B,可以描述为B是A,则B可以继承A。例如,小轿车是交通工具,则小轿车和交通工具是继承和被继承的关系。
**优点
不用继承的话,如果要修改功能,就必须在所有重复的方法中修改,代码越多,出错的可能性就越大。而继承似的所有子类公共的部分都放在了父类,似的代码得到了共享,避免了重复,减少代码量。另外,继承似的修改或扩展继承儿来的实现都较为容易。
***特点
1、继承是传递的。如果C从B派生,并且B从A派生,那么C继承在B中声明的成员,同事也继承在A中声明的成员。
2、派生类拓展他的直接类。派生类可以添加新的成员,但不能出去已经继承的成员的定义。
3、构造函数和析构函数不能被继承。
4、一个派生类可以通过用相同的名称或声明一个新成员的方法隐藏继承的成员,即覆盖已继承的成员。
5、一个类可以声明虚拟方法、属性和索引,它的派生类能够重载这些成员,从而可以实现多态性。
6、派生类只能从一个类中继承,可以通过接口实现多重继承。
****实例应用
public class Person //定义基类 { //成员变量 private string_name; //成员函数 public void GetInfo() { console.WriteLine(“请输入你的姓名”); _name.console.ReadLine(); console.WriteLine(“尊敬的{0},你好!",_name); } } //派生类 public class Student:Person { private string_school; private uint_math; public void Get Marks() { console.WriteLine("请输入学校名称"); _school=console.ReadLine(); console.WriteLine("请输入数学的分数:"); _math=unit.Parse(Console.ReadLine()); console.WriteLine("所得分数为:{0}",_math) } }
//调用 Static void Main(string[] args) { Student objStudent=new Student(); objStudent.GetInfo(); }
原文:http://blog.csdn.net/u010924897/article/details/23028347