最近在学C#时候,学到面向对象那块的时候,提到了继承,并且提到了C#中类的多继承,但是可以通过接口实现多继承,不禁想到了C++和VB中的关于继承的一些东西。
Ø 何为继承?
继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。
同类事物具有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共同性,则得到一个适应于一批对象的类,这便是基类(父类),而把具有特殊性的类称为派生类(子类),派生类的对象拥有其基类的全部或部分属性与方法,称作派生类对基类的继承。
u VB
我们知道在VB中没有显示继承机制。VB中实现继承的方法是利用接口技术来实现的,VB可以继承接口,这也是继承。并且接口的继承为多态提供了可能。
在VB中可以在派生类中实现基类的接口,然后再在接口中委托执行或调用基类属性和方法。
以学生为例:
1、创建一个person基类,并在类模块中声明其属性和方法,如果基类中一些属性或方法存在至少被一些子类共享的代码,那么便可以在基类中把他们实现,这样使得派生类可以访问他们了。
2、创建学生类,并且在类中实现默认接口及Iprint接口。
3、在学生类中,用Implement关键字声明person接口。
4、在学生类中声明及创建基类person的实例,这便实现了继承。
5、学生类实现了基类接口的属性和方法,也可以在person接口委托调用基类的属性和方法。
Ø C++
C++中存在单一继承(只拥有一个父类)和多重继承(拥有多个父类)。
u 单一继承
u 多重继承
Ø 那么谈谈C#
在C#中存在单一的继承,但是不存在多重继承。但是其存在多重接口的继承,这与VB有相似之处。
u C#与VB
在实现继承方面,C#是支持单一继承的,但是VB并不支持。但是在实现多重接口继承时,VB与C#有相似之处,那就是VB与C#均可以采用通过接口的方式实现继承。主要就是通过定义一个基类的接口,可以让子类中实现基类接口的属性和方法。