继承 :在面向对象的编程中,有两种截然不同的继承类型:实现继承和接口继承。
实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数。在实现继承,派生类型采用基类型的每个函数的实现代码,除非在派生类型的定义中指 定重写某个函数的实现代码。在需要给现有的类型添加功能,或许多相关的类型共享一组重要的公共功能时,这种类型的继承非常有用
接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码 。在需要指定该类型具有某些可用的特性时,最好使用这种类型的继承。
一些语言(如C++)支持所谓的 “多重继承”,即 一个类派生自多个类。C#不支持多重实现继承。而C#又允许类型派生自多个接口:多重接口继承。这说明,C#可以派生自另一个类和任意多个接口。更准确地说,因为 System.Object是一个公共的基类,所以每个C#类(除了Object类之外)都有一个基类,还可以有任意多个基接口。
实现继承:
如果要声明派生自另一个类的一个类,就可以使用下面的语法(基类放冒号后面):
这个语法非常类似于C++ 和 Java 中的语法,但是,C++程序员习惯于使用公共和私有继承的概念,要注意不支持私有继承,因此在基类名上没有public 或 private限定符。支持私有继承只会大大增加语言的复杂性。
如果类(或结构)也派生自接口,则用逗号分隔列表中的基类和接口:
把一个基类函数声明为virtual,就可以在任何派生类中重写该函数:
抽象类和抽象函数:
C#允许把类和函数声明为abstract。抽象类不能实例化,而抽象函数不能直接实现,必须在非抽象的派生类中重写。显然,抽象函数本身也是虚拟的(尽管也不需要提供 virtual关键字,实际上,如果提供了该关键字,就会产生一个语法。如果类包含抽象函数,则该类也是抽象的,也必须声名为抽象的:
关于C#面向对象编程我们就先介绍到这了。
标签:函数,继承,接口,面向对象,开发,基类,类型,C# From: https://www.cnblogs.com/lllxxxyyy/p/17636222.html