Java和C++的虚函数的异同
2016-05-17 19:00
211 查看
参考博客:点我
要点:Java中的普通函数默认为虚函数,因此动态绑定的行为是默认的,而C++必须将方法声明为虚函数(virtual关键字),执行时才会进行动态绑定,详细区别可参考代码以及注释。
代码大致:实现父类 Animal类,包含数据成员 姓名和年龄,以及实现eat方法和informa方法,子类Dog类继承于Animal,并实现方法的覆盖。Java和C++中都没有显示声明为虚函数,但观察输出结果可知,Java中实现了动态绑定,而C++没有,只有将相应函数加上virtual关键字,才实现动态绑定。这就是Java和C++处理的不同之处
C++代码:
View Code
要点:Java中的普通函数默认为虚函数,因此动态绑定的行为是默认的,而C++必须将方法声明为虚函数(virtual关键字),执行时才会进行动态绑定,详细区别可参考代码以及注释。
代码大致:实现父类 Animal类,包含数据成员 姓名和年龄,以及实现eat方法和informa方法,子类Dog类继承于Animal,并实现方法的覆盖。Java和C++中都没有显示声明为虚函数,但观察输出结果可知,Java中实现了动态绑定,而C++没有,只有将相应函数加上virtual关键字,才实现动态绑定。这就是Java和C++处理的不同之处
C++代码:
package com.hao; public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 Animal A = new Animal("A", 10); Animal B = new Dog("B", 20); A.information(); B.information(); //Java中默认使用动态绑定---区别于C++ A.eat(); B.eat(); } }
View Code
相关文章推荐
- 分数加减的简单运算
- 杭电 2054(指针 strchr函数)
- C语言实现电话本 动态开辟 信息存储于文件
- C语言中经常遇到的陷阱!好东西
- C++开学第二次作业(5.14)
- stm8中断使用
- MZ test17# NOIP模拟题 #T3 第3 题 登山机器人(robot.pas/cpp)
- C++ 接口的实现方式
- C++中如何可以修改const函数内的成员变量的值?
- 1007. 素数对猜想 (20)
- C++拷贝构造函数详解
- C++类内存实验(一)
- C++——成员函数
- c++ 之replace函数用法
- C语言高级知识点滴
- POJ 3254 Corn Fields(状态压缩DP)
- C语言编写金字塔
- c++ inline 函数
- c语言文件操作总结
- c语言写的数据挖掘的层次聚类算法(新手版)