我正在做一个任务,我试图实现一个扩展抽象超类的类,但是通过使用
public class B extends A{}
但是,这给了我 B 类型必须实现抽象方法 A.act 的错误,是否有另一种方法可以在不使用扩展的情况下做到这一点?
使用:
public abstract class B extends A{}
在作业的另一部分给我一个不同的错误,应该是正确的。
我应该怎么办?谢谢您的帮助。
我正在做一个任务,我试图实现一个扩展抽象超类的类,但是通过使用
public class B extends A{}
但是,这给了我 B 类型必须实现抽象方法 A.act 的错误,是否有另一种方法可以在不使用扩展的情况下做到这一点?
使用:
public abstract class B extends A{}
在作业的另一部分给我一个不同的错误,应该是正确的。
我应该怎么办?谢谢您的帮助。
为了B
被 JVM 实例化,它不能是abstract
. 抽象类是关于类如何工作的想法或建议,其中一些(或全部)功能需要由扩展它的类来实现。
为了B
被实例化,它必须实现所有的抽象方法A
。
要解决您的问题,您必须提供A
标记为abstract
...的方法的实现
public abstract class A {
public abstract void implementMe();
}
public class B extends A {
public void implementMe() {
// Your implementation
}
}
这样做的大部分原因是它允许您传递给使用并改变工作方式的B
方法和类。这是多态性的一部分,其中一个对象实例可以充当其父级(就像它一样)A
A
B
A
我不知道它是否会有所帮助,但您可以阅读抽象类和方法
如果您不想在 B 中提供行为的实现,请不要将抽象类 A 中的方法行为声明为抽象方法。但这可能不是正确的选择,具体取决于您要实现的目标。在第二种情况下,当抽象类扩展另一个抽象类时,使用“实现”而不是“扩展”。希望能帮助到你