gpt4 book ai didi

java - 如何确保从子类中的方法在抽象父类(super class)中调用某些方法 (Java)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:31 25 4
gpt4 key购买 nike

我有一个带有方法的抽象父类(super class) A doSomething() . A 的子类必须实现 doSomething() , 但也有一些公共(public)代码应该在每次子类调用时调用 doSomething() .我知道这可以这样实现:

public class A {
public void doSomething() {
// Things that every sub-class should do
}
}

public class B extends A {
public void doSomething() {
super.doSomething();
// Doing class-B-specific stuff here
...
}
}

虽然这似乎存在三个问题:

  • 方法签名必须匹配,但我可能只想在子类方法中返回一些东西,而不是在父类(super class)中
  • 如果我将 A.doSomething() 抽象化,则无法在 A 中提供(通用)实现。如果我不将其抽象化,则无法强制子类实现它。
  • 如果我使用不同的方法来提供通用功能,我无法强制 B.doSomething() 调用该通用方法。

关于如何实现这些方法有什么想法吗?

最佳答案

接下来呢?

public abstract class A {
protected abstract void __doSomething();

public void doSomething() {
// Things that every sub-class should do
__doSomething();
}
}

public class B extends A {
protected void __doSomething() {
// Doing class-B-specific stuff here
...
}
}

然而,第一个要点并不那么明确。如果你想返回不同的东西,签名就不能匹配。

关于java - 如何确保从子类中的方法在抽象父类(super class)中调用某些方法 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31904739/

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