继承分为两部分,接口继承和实现继承。
实现继承:表示一个新类派生于基类,他享有基类中所有的函数和字段(对基类私有函数和字段不可访问)。
接口继承:表示一个类型只继承了函数的签名,没有继承任何的实现代码,通常用于具有某种特定的属性的时候使用它。
virtual(虚方法)
如果继承类想要重写基类的方法,可以把基类的方法写成虚方法,在继承类中采用override关键字重写。
abstract(抽象方法和抽象类)
抽象类不能实例化,抽象类中的的函数,只有函数的声明,没有具体的实现代码,必须要在子类中重写,采用override关键字重写该函数。只能在抽象类中定义抽象函数。
virtual和抽象的区别和联系
派生类构造函数:层次类的结构中(多层级继承),实例化的顺序是先实例化最底层的基类,然后依次向上的实例化子类,直至要实例化的类为止。
扩展类型:如果一个已知的类(Person类)没有源码,并且无法实现重写和继承,可以采用扩展类型对类进行扩展,创建一个静态类,添加一个静态方法。
public static class newperson
{
public static string SayName(this Person per,string Name)
{
//具体实现
}
}
newperson类中this关键字指明要扩展的类的类型Person类型,在此方法中可以访问Person类的方法和属性。这样在定义Person类的时候就可以直接访问SayName的函数。
Person p=new Person();
p.SayName("text")
时间: 2024-11-06 09:04:01