错误的方法正文或声明摘要'抽象类。但是类WaterLevelObserver
已经是抽象的......我该如何解决这个错误?
abstract class WaterLevelObserver{
void update(int waterLevel);
}
class SMSWriter extends WaterLevelObserver{
void update(int waterLevel){
System.out.println("Sending SMS.. : "+waterLevel);
}
}
class Alarm extends WaterLevelObserver{
void update(int waterLevel){
if(waterLevel>=50){
System.out.println("ON");
}else{
System.out.println("OFF");
}
}
}
class Display extends WaterLevelObserver{
void update(int waterLevel){
System.out.println("Water level.. : "+waterLevel);
}
}
答案 0 :(得分:3)
abstract
类中任何未实现的方法也应该是abstract
,
因此您需要创建方法abstract
并确保在子类中实现它
abstract class WaterLevelObserver{
abstract void update(int waterLevel);
}
阅读Oracle所说的内容。
另见:
答案 1 :(得分:1)
将课程定义为abstract
只是意味着您无法对其进行实例化,并且您已经允许定义abstract
方法。
任何未定义为abstract
的方法都必须有正文。 TL; DR - 如果您不想实施update
,请将其定义为abstract
:
abstract class WaterLevelObserver{
abstract void update(int waterLevel);
}
答案 2 :(得分:0)
您必须定义正文,或者必须将其声明为abstract
。如果你不想添加任何身体 - 改变
void update(int waterLevel);}
到
`abstract void update(int waterLevel);}`
答案 3 :(得分:0)
该方法也应该是抽象的:
abstract class WaterLevelObserver
{
void abstract update(int waterLevel);
}
未声明为abstract
的方法必须由类实现,即使它位于抽象类中。
答案 4 :(得分:0)
我们需要在抽象类的情况下明确地告诉编译器它是一个抽象类。没有它将搜索body的关键字。它在接口的情况下很好,默认情况下都是抽象的。
abstract void update(int waterLevel);