gpt4 book ai didi

java - 让继承类实现父类(super class)的方法

转载 作者:行者123 更新时间:2023-12-02 02:43:43 24 4
gpt4 key购买 nike

假设我的代码有这样的结构:

public abstract class A{ 
public abstract Foo methodX();
public abstract Bar methodY();
}

public class B extends A {
public Foo methodX(){
// stuff
}
public Bar methodY(){
// more stuff
}
}

public class C extends A {
public Foo methodX() {
// stuff
}
public Bar methodY(){
// What to do?
}
}

public class D extends C {
public Bar methodY() {
// do stuff
}
}

public class F extends C {
public Bar methodY() {
// do different stuff
}
}

我这样做的原因是因为我有多个继承A,它们都有共同的方法methodX()methodY() 和我有多个扩展 Bclass 都具有 B 的一些共同属性,但需要有不同的方法来执行 methodY () 并具有不同的 equals/hashcode。

那么,我如何才能让 B 实现唯一的 methodX() 但让 C 和 D 实现 methodY() 而无需返回 null 或在 methodY() 中对 B 不执行任何操作?

最佳答案

您需要将类 B 声明为抽象类

public abstract class B extends A{
public Foo medhodX(){
// stuff
}
}

通过声明类抽象,您可以允许他不实现所有抽象方法(来自父类(super class)或实现的接口(interface))。因此,您可以只实现一个抽象方法,并强制子类实现所有剩余的抽象方法。

关于java - 让继承类实现父类(super class)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44998139/

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