我该如何解决这个Java继承练习?

时间:2011-02-15 09:29:48

标签: java oop inheritance

我是初学者。对不起.. ..

为了解决这个问题,我正在绞尽脑汁。

任何帮助都将受到高度赞赏。

非常感谢

............................................... ............................

在Java中定义两个类,名为MyBaseClass和MyDerivedClass。

前一类声明了一个名为meth()的受保护和抽象方法,它有非参数并返回一个整数值。

后一类扩展了第一个类,并通过返回值5来实现继承的方法。

............................................... ........

我的实施是(我知道这是错的,但对不起,我不知道为什么......):

public MyBaseClass {

    protected abstract meth();
    return ();
}

public MyDerivedClass extends MyBaseClass {

 meth();
 return (5);

} 

3 个答案:

答案 0 :(得分:5)

这听起来很缺乏对类可以包含的内容以及OOP如何工作的理解。你在类中拥有的是方法和变量,而不是代码语句。

显然meth();是一个声明,实际上是对函数的调用。您正在寻找的是实现抽象方法:

public abstract class MyBaseClass {
 protected abstract int meth();
}

public class MyDerivedClass extends MyBaseClass {
 protected int meth { return 5; }
}

看:每个类都包含{ }一个正文,其中包含由签名(例如protected int meth())和正文定义的方法列表(除非abstract)。也允许变量。

但是恕我直言,你应该在深入研究继承之前更多地学习OOP基础知识和编程基础知识。并且永远记住:在完整的面向对象编程语言(如Java)中,语句不能驻留在方法体外。

答案 1 :(得分:2)

您的实现缺乏Java的基本原则。也许你应该首先研究如何在Java中声明一个方法/类。但是,这是正确的解决方案:

抽象类:

public abstract MyBaseClass {
    protected abstract int meth();
}

后裔类:

public MyDerivedClass extends MyBaseClass {
    @Override
    protected int meth() {
        return 5;
    }
} 

答案 2 :(得分:1)

public abstract class MyBaseClass{

protected abstract int meth();


}

public class MyDerivedClass extends MyBaseClass{

protected int meth(){
return 5;
}

}