gpt4 book ai didi

java - 尽管实现了,具体类方法仍然从抽象类中抛出异常

转载 作者:行者123 更新时间:2023-12-01 19:09:25 30 4
gpt4 key购买 nike

我有一个抽象类 Automobile,它有一个名为 move 的未实现方法所以

public abstract class Automobile {
public void move() {
throw new UnsupportedOperationException();
}
}

我有一个具体的类,它扩展了我的抽象类并实现了 move 方法。我的问题是该方法不断抛出 UnsupportedOperationException

public class Car extends Automobile{
int x;
public void move(){
x++;
}
}

最佳答案

在您的具体类中可能有多种原因:也许您的具体类实际上并未扩展Foo?或者它可能在其主体的某处调用 super.move()

正确的方法不是抛出异常,而是将类和方法定义为抽象,以强制子类覆盖它。

public abstract class Foo {
public abstract void move();
}

请注意,如果 Foo 仅具有抽象方法(如上例所示),那么这就是您想要的接口(interface),而不是抽象类。另外,您应该命名它来定义行为

public interface Moving { 
void move();
}

然后:

public class MovingObject implements Moving {
....
@Override
public void move() {
// your implementation
}
....
}

关于java - 尽管实现了,具体类方法仍然从抽象类中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788862/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com