【技术】C#、C++、JAVA中虚函数和抽象函数的概念对比
来源:互联网 发布:淘宝达人帖子写手 编辑:程序博客网 时间:2024/05/17 11:06
转自http://blog.sina.com.cn/s/blog_65d1293a0101ncep.html
1、C++中函数被定义为虚函数的方法是在函数名前加virtual,虚函数可以有自己的具体内容,也可以不含有函数实现内容,称为纯虚函数。这里未指明为纯虚函数的函数均默认为非纯虚函数。纯虚函数的表示形式为virtualintgetNum()=0;后面加"==0"表示函数无实现内容。含有虚函数的类可以实例化,可当作普通类来使用,但含有纯虚函数的类只能被继承后才能使用,且子类中必须实现父类的纯虚函数,这种情况下父类称为抽象类。
2、java中没有虚函数的概念,普通函数就相当于C++中的虚函数,不过可以在函数前加final使函数不能被重写。java中的含有抽象函数,相当于C++中的纯虚函数,java的抽象函数只能在抽象类中定义。java的抽象类不能被实例化,抽象类的子类必须实现全部抽象函数。可见java和C++中,虚函数的相关概念本质上是一致的。
3、C#整合了java和C++,对虚函数有了更明细的划分。定义了虚函数和抽象函数。虚函数定义时,在函数前加virtual,函数必须有实现,在子类中可以重写也可以不重写虚函数,重写虚函数时应在重写的函数前加override关键字。抽象函数不能含有函数实现,类似于接口,在继承的子类中必须重写该函数。另外,抽象函数只能定义在抽象类中,在普通类中定义抽象函数会报错。
可简单对比理解如下:
C++: 虚函数 纯虚函数
java: 普通函数 抽象函数
C#: 虚函数 抽象函数
阅读全文
0 0
- 【技术】C#、C++、JAVA中虚函数和抽象函数的概念对比
- C#、C++、JAVA中虚函数和抽象函数的概念对比
- C#、C++、JAVA中虚函数和抽象函数的概念对比
- C#、C++、JAVA中虚函数和抽象函数的概念对比
- C++中抽象类、虚函数和纯虚函数与Java中相关概念的对比
- Java?C++?虚函数?抽象?
- JAVA抽象类、接口和C++的虚函数对比
- c++中抽象类、虚函数和纯虚函数的学习以及和Java的对比
- c的回调函数与java中抽象函数,接口函数,抽象类简单理解
- [C++] 函数的概念
- 【c++】纯虚函数和抽象类
- C++_虚函数和抽象类
- [C++]纯虚函数和抽象类
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- c++------------之---【虚函数和抽象基类的应用】
- C语言中strspn()函数和strcspn()函数的对比使用
- Longest_consecutive_sequence
- OpenJudge百炼-2739-计算对数-C语言-高精度
- 签名验签自助排查
- redis服务器允许远程访问
- jfinal 判断方法参数不能为空的注解
- 【技术】C#、C++、JAVA中虚函数和抽象函数的概念对比
- alert 为什么会比它上一条语句先执行
- win10专业版激活
- mysql5.7在Linux的安装
- R语言 diag函数的用法
- 【Git】记录每次更新到本地仓库
- css3
- 拼多多笔试
- best-time-to-buy-and-sell-stock