gpt4 book ai didi

java - 我们可以将 getter 和 setter 放在抽象类中吗?

转载 作者:行者123 更新时间:2023-12-03 18:07:47 25 4
gpt4 key购买 nike

public abstract ClassName
{

// methods
// setters & getters...???

}

最佳答案

简短的回答:是的:

public abstract class ClassName {
private String field;

public String getString() {
return field;
}

public void setString(String field) {
this.field = field;
}
}

更多扩展答案(我不确定它现在是否适合您):

你应该意识到这些方法(如果它们没有用 final 修饰符声明)可以在子类中被覆盖。这就是为什么考虑方法契约并仔细记录它们很重要的原因。如果您的抽象类的一个方法调用另一个它的方法,那么这个事实也应该被记录下来。

抽象类的所有 protected 和公共(public)方法(和常量,在极少数情况下 - protected 字段)都成为 API 的一部分。因此,其他开发人员可以使用它们并且更改它们不是很容易。

关于最佳实践:

1) 在让你的类 Serializable 之前三思——这将使所有子类也可序列化,并且(如果你想生成不会损坏的程序)你应该关心任何子类的可能序列化.

2) Cloneable 的实现也是一样的(最好不要在顶层抽象类中实现)。

3) 你应该提供正确的 equalshashCode 实现,考虑到 2 个子类可以与抽象类中的你的实现进行比较.

4) 考虑提供自然排序(即实现 Comparable 接口(interface))。如果存在真正的自然顺序,通常是个好主意。

关于java - 我们可以将 getter 和 setter 放在抽象类中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4040921/

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