我是初学者。对不起.. ..
为了解决这个问题,我正在绞尽脑汁。
任何帮助都将受到高度赞赏。
非常感谢
............................................... ............................
在Java中定义两个类,名为MyBaseClass和MyDerivedClass。
前一类声明了一个名为meth()的受保护和抽象方法,它有非参数并返回一个整数值。
后一类扩展了第一个类,并通过返回值5来实现继承的方法。
............................................... ........
我的实施是(我知道这是错的,但对不起,我不知道为什么......):
public MyBaseClass {
protected abstract meth();
return ();
}
public MyDerivedClass extends MyBaseClass {
meth();
return (5);
}
答案 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;
}
}