gpt4 book ai didi

java - 提供一个方法定义之前有一个抽象版本?

转载 作者:行者123 更新时间:2023-12-01 07:32:03 26 4
gpt4 key购买 nike

是否可以有:

public abstract void someMethod();
...
public void someMethod() {
// ...
}

同一个类(class)?或者定义必须在子类中吗?

最佳答案

public abstract void someMethod();

public void someMethod() {
// ...
}

在同一个类中,即重复的方法定义。不可能。方法是根据方法签名来区分的,而不是根据abstract之类的修饰符来区分。来自官方Java tutorial :

方法声明的两个组成部分包括方法签名——方法名称和参数类型。Java 编程语言支持重载方法,并且 Java 可以区分具有不同方法签名的方法。

问题:

Or does the definition have to be in the child classes?

可以是一个子类,但它必须是层次结构中的具体子类。因此,第一个非抽象子类应该提供抽象方法的实现。再次,来自Java tutorial :

当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。 但是,如果没有,子类也必须声明为抽象。

关于java - 提供一个方法定义之前有一个抽象版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549436/

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