gpt4 book ai didi

java - 您是否必须在父类(super class)中有一个抽象方法才能启用后期绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 16:14:48 25 4
gpt4 key购买 nike

假设我有一个抽象父类(super class)。我的所有子类都有一个名为 toString() 的公共(public)方法。但不同的子类应该对 toString() 方法有不同的定义。我想使用后期绑定(bind)。问题是我是否必须在父类(super class)中有一个名为 toString() 的抽象方法才能在子类中启用后期绑定(bind)?或者我可以直接为每个子类编写不同的 toString() 方法,而无需在父类(super class)中创建这样的抽象方法?

最佳答案

我认为您正在寻找“惰性评估”和/或“记忆化”。然后,您可以在父类(super class)中使用抽象方法实现 toString() 来计算 String,并要求子类实现该方法:

public abstract class Superclass {                                              
private String string = null;

@Override
public String toString() {
if (string == null) {
string = calculateString();
}

return string;
}

protected abstract String calculateString();
}

public class Subclass extends Superclass {
@Override
protected String calculateString() {
return "This is the subclass string";
}
}

关于java - 您是否必须在父类(super class)中有一个抽象方法才能启用后期绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62431664/

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