如果我有这样的类(class):

class Person {
  private String name;
  ...constructor, getters, setters, equals, hashcode, tostring...
}

我可以在不重新实现该类的其余部分的情况下对子类的名称字段进行子类化并将其应用于子类的名称字段,例如以应用持久性注释吗?
@Entity
class Employee extends Person {
    @Column(...)
    private String name;
}

最佳答案

不,你不能。

您建议的是字段阴影-您不能覆盖字段。

子类中的name字段与父类(super class)中的name字段无关,除了它具有相同的“名称”名称,因此要区分父类(super class)中的字段,必须将其称为super.name。子类。

这样做通常被认为是“错误”(或者无论如何都是潜在的错误),并且最佳做法是不要隐藏字段,因为在不知道的情况下引用错误的字段非常容易。

10-07 19:30
查看更多