您的位置:首页 > 编程语言 > C语言/C++

VB、C++和C#——继承

2014-04-29 11:15 239 查看
最近在学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#均可以采用通过接口的方式实现继承。主要就是通过定义一个基类的接口,可以让子类中实现基类接口的属性和方法。

u C#与C++

C++与C#一样是支持单一继承,但是C#不支持多重继承,而C++是支持的,这是与C++的不同之处。但是C#支持多重接口继承。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: