为什么我不能将派生类对象分配给java中的基类对象?

时间:2014-06-23 18:56:41

标签: java oop subclass superclass

以下是代码:

class base
{
    public void abc()
    {
        System.out.print("what's up dude");
    }
}

class derived
{
    public void abc()
    {
        System.out.print("wad up ");
    }
}

public class superreftosub
{
    public static void main(String args[])
    {
        base b=new base();
        derived d=new derived();
        base b=d;
        b.abc();
    }
}

3 个答案:

答案 0 :(得分:1)

您必须使用超类 - 子类关系:

这样:

class derived extends base {

    @Override
    public void abc() {
        System.out.print("wad up ");
    }
}

在一些弱类型的编程范例中(例如鸭子打字),这确实没有必要。然而,Java是强类型的(java不是完全强类型的,但这是另一种讨论)并且只允许分配扩展类型,并且您只能使用@Override注释为方法提供新定义。

答案 1 :(得分:0)

答案 2 :(得分:0)

你应该使用extends关键字来继承一个类,

class derived extends base {
    //...
}