VB、C++和C#——继承
2014-04-29 11:15
239 查看
最近在学C#时候,学到面向对象那块的时候,提到了继承,并且提到了C#中类的多继承,但是可以通过接口实现多继承,不禁想到了C++和VB中的关于继承的一些东西。
继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。
同类事物具有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共同性,则得到一个适应于一批对象的类,这便是基类(父类),而把具有特殊性的类称为派生类(子类),派生类的对象拥有其基类的全部或部分属性与方法,称作派生类对基类的继承。
在VB中可以在派生类中实现基类的接口,然后再在接口中委托执行或调用基类属性和方法。
以学生为例:
1、创建一个person基类,并在类模块中声明其属性和方法,如果基类中一些属性或方法存在至少被一些子类共享的代码,那么便可以在基类中把他们实现,这样使得派生类可以访问他们了。
2、创建学生类,并且在类中实现默认接口及Iprint接口。
3、在学生类中,用Implement关键字声明person接口。
4、在学生类中声明及创建基类person的实例,这便实现了继承。
5、学生类实现了基类接口的属性和方法,也可以在person接口委托调用基类的属性和方法。
Ø 何为继承?
继承是指一个对象直接使用另一对象的属性和方法。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。
同类事物具有共同性,在同类事物中,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共同性,则得到一个适应于一批对象的类,这便是基类(父类),而把具有特殊性的类称为派生类(子类),派生类的对象拥有其基类的全部或部分属性与方法,称作派生类对基类的继承。
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#支持多重接口继承。相关文章推荐
- 各种计算机语言的经典书籍(C/C++/Java/C#/VC/VB等)
- c#调用C++写的dll导出类,包含继承,重载等详细介绍(转载)
- C++ 和C# 继承机制的差异之浅见
- C#不存在私有继承和保护继承,只有公有继承,这点和C++相比还是简单了很多
- JAVA C# C/C++之比教学:继承
- 零基础学编程,vb/java/c/c#/c++等 哪个更适合?
- C# VC VB Delphi Lazarus C++ builder 多种编程语言执行效率比较
- 继承之跨语言继承:inherit from C# to VB.net via CLR
- 不能被继承的类[C/C++/C#]
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- [转摘]VB用户下降,C/C++/C#用户上升
- C++.NET与C#的编码区别 ,vb.net与c#的语法比较
- 如何用VB,C#调用C++写的DLL
- 继承之跨语言继承:inherit from C# to VB.net via CLR
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- 使用字符串资源(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)
- [转]如何借助 TLS/SSL 确保套接字连接的安全(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)
- C++继承详解之三——菱形继承+虚继承内存对象模型详解vbptr(1)
- VB / Java / C / C# / C++ 等零基础学哪个更容易上手?
- C++在线转换为C#或VB.NET