在C++中,构造函数中是不能使用虚机制的,但是在java中却能用,求高手解释为什么?C++代码:
#include<iostream>
using namespace std;class A{
public:
A(){func();} void func(){
cout<<"A::func"<<endl;
}
};class B:public A{
public:
B(){} void func(){
cout<<"B::func"<<endl;
}
};int main(){
new B;
}---------------------------------------------------------------------------------------------------------------------------------------------java代码:
public class Main {
public static void main(String[] args) {
new B();
}
}class A{
A(){
func();
}
void func(){
System.out.println("A::func");
}
}class B extends A{
B(){
}
void func(){
System.out.println("B::func");
}
}----------------------------------------------------------------------------------------------------------------------------------------------上面C++代码输出的是A::func,而java代码输出的是B::func。
#include<iostream>
using namespace std;class A{
public:
A(){func();} void func(){
cout<<"A::func"<<endl;
}
};class B:public A{
public:
B(){} void func(){
cout<<"B::func"<<endl;
}
};int main(){
new B;
}---------------------------------------------------------------------------------------------------------------------------------------------java代码:
public class Main {
public static void main(String[] args) {
new B();
}
}class A{
A(){
func();
}
void func(){
System.out.println("A::func");
}
}class B extends A{
B(){
}
void func(){
System.out.println("B::func");
}
}----------------------------------------------------------------------------------------------------------------------------------------------上面C++代码输出的是A::func,而java代码输出的是B::func。
解决方案 »
- java学习是应该侧重其底层原理,还是学习如何去应用、开发
- eclipse编译错误为什么会显示?
- 急!高手们谁能推荐一些Java中GUI方面的书或者是视频哈!
- 谁帮我写下 java 添加 删除 保存数据表的 代码..
- 求一Java语法的分析器,要源代码,谢谢!
- swing中的jframe如何限定最小的尺寸。
- 急!!为什么不实现接口所有的方法也可以使用该接口?
- config文件读不到。
- 关于java中的corejava.*包。我在书中看到有不少都用,但编程的时候说没有这个包,是怎么回事?
- 通过JDBC连接数据库,执行抄作后,关闭了连接,数据服务器端的进程还在,怎麽处理?
- jimi问题:No source image set.
- 用JAVA编写一个股票大盘显示程序
上面C++代码中A的func我忘了加virtual了,加了之后结果不变。这样C++的func不也被override了吗?