相同的继承代码在java和c++;

相同的继承代码在java和c++;,java,c++,oop,inheritance,binding,Java,C++,Oop,Inheritance,Binding,java的输出是 drawing shape drawing circle ************************ drawing shape java方法是隐式的虚拟,所以你希望C++代码使用“虚拟”关键字来复制与java示例相同的行为: Drawing the shape Drawing Circle ************************ Drawing Circle 可选地,如果您希望java代码具有与C++示例相同的行为,则需要将java方法声明为“最终”:

java的输出是

drawing shape
drawing circle
************************
drawing shape

java方法是隐式的虚拟,所以你希望C++代码使用“虚拟”关键字来复制与java示例相同的行为:

Drawing the shape
Drawing Circle
************************
Drawing Circle

可选地,如果您希望java代码具有与C++示例相同的行为,则需要将java方法声明为“最终”:

class Shape
{
public:
    virtual void draw();
};
class Circle : public Shape
{
public:
    virtual void draw() override; //C++11 'override'
};

我已经做了很长时间了C++,但是我想你需要声明<代码>形状::<代码> >代码>虚拟<代码>允许重写。我投票将这个问题作为主题关闭,因为没有编程问题。@ Juliangf.WeaNeT:您最好仔细阅读示例——C++代码首先具有“形状”类,虽然Java代码首先有“Circle”类。@julian.Weinert:这当然是编程语言的问题!java方法是隐式的虚拟,C++需要关键字。对不起,DaveDoknjas!我重读了你的问题。问题本身还不清楚,只有你的评论。请编辑您的问题并说明清楚。我收回这句话,但这仍然不是一个好问题——对不起。
class Shape
{
public:
    virtual void draw();
};
class Circle : public Shape
{
public:
    virtual void draw() override; //C++11 'override'
};
public class Shape
{
    public final void draw()
    {
        ...
    }
}
public class Circle extends Shape
{
    public final void draw()
    {
        ...
    }
}