C#学习系列之继承
啰嗦
基础学习。
继承
继承的含义:在现有类上建立新类,即一个类派生于另一个基类型,它拥有该基础类型的所有成员字段和函数(构造函数和析构函数以外的所有成员)。 已有类为基类,继承类为派生类。 A派生于B,继承A的所有东西,同时可以增加自己的东西。 当然在使用过程中,如果出现私有化,就无法直接使用。 C#中通常把派生类和基类的关系称为继承,类和接口的关系称为实现。接口不能定义构造函数,所以接口不能实例化。 C#中的派生类只能有一个基类,不支持类的多重继承,但可以继续承接多个接口,通过接口实现多继承性。 C#类可以派生自另一个类和任意多个接口。 结构不支持实现继承,但是支持接口继承。 C#派生类继承了基类,可继承父类的可继承的属性、函数。
继承的实现
继承需要借助公用的方法来调用,如果定义为private类型是不能直接访问的。private修饰的成员方法是不能被继承的。 基类中使用声明了virtual,派生类可在这个基础上进行重写。 this指代当前类的实例或者对象;base代表可以基于基类成员进行访问。
继承的语法
<访问修饰符符> class <基类>
{
...
}
class <派生类> : <基类>
{
...
}
使用
public class parent
{
public string name;
}
public class child:parent//相当于child继承于parent
{
}
class program
{
static void Main(string[] args)
{
Child child=new Child();
child.name="lily";//拥有父类的基础
}
}
特殊基类
object类是所有类的共同基类,它是唯一的非派生类,是继承层次结构的基础。对于其他类,父类和子类的概念都是相对的。 规则:继承只能单继承。 继承可以层次性的往下依次继承。
隐藏方法
无法删除基类成员,可定义同名成员,来不使用基类成员。加new可用于提示,防止警告。
实际使用
例如:parent中存在一个函数 print打印函数,那么可以在child中也定义一个print,前面再加一个new关键字。
总结
简单的继承学习。