我对C++和Java中的虚拟机制有一些困惑.以下程序的输出是不同的.我无法理解为什么?
在Java中:
class Base
{
Base()
{
show();
}
public void show()
{
System.out.println("Base::show() called");
}
}
class Derived extends Base
{
Derived()
{
show();
}
public void show()
{
System.out.println("Derived::show() called");
}
}
public class Main
{
public static void main(String[] args)
{
Base b = new Derived();
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Derived::show() called
Derived::show() called
Run Code Online (Sandbox Code Playgroud)
在C++中,输出如下:
#include<bits/stdc++.h>
using namespace std;
class Base
{
public:
Base()
{
show();
}
virtual void show()
{
cout<<"Base::show() called"<<endl;
}
};
class Derived : …Run Code Online (Sandbox Code Playgroud) 我正在使用NetBeans 6.8.
我有一个类ClassA位于PackageA中JavaApplicationProject1.
我打算使用这个类ClassB位于PackageB在JavaApplicationProject2刚导入它.一种选择是复制ClassA的PackageB,但我不希望复制.我怎样才能做到这一点?