我有以下的抽象Java类:如何注释派生自抽象类的实例变量?
abstract class AbstractDto {
String id;
public void setId(String id) { this.id = id; }
public String getId() {return id; }
}
我也有类扩展抽象类:
class SomeDto extends AbstractDto {
@SomeAnnotation
String id;
}
我想注释从抽象类派生的一个实例变量。我不确定这是否是我走的路。我知道Java不提供变量重载,所以这是阴影。
public void go(AbstractDto dto) {
println("dto.id: "+dto.id);
}
AbstractDto dto = new SomeDto();
dto.setId("1234");
go(dto);
因为当我设置SomeDto的ID我的阴影再有就是从还是不能设置AbstractDto继承了id
变量:
所以,如果我这样做会发生什么。
如何注释抽象超类中定义的实例变量?
编辑:当我做:
SomeDto dto = new SomeDto();
dto.setId("123");
哪个ID是设置一个在AbstractDto或一个在SomeDto? 发生什么我在抽象类中的方法读取id然后使用哪个id?
它被称为['shadowing'](http://docs.oracle.com/javase/specs/jls/se7 /html/jls-6.html#jls-6.4.1)。这可能会有所帮助:http://stackoverflow.com/questions/16941179/variable-shadowing-in-java – 2015-02-06 22:44:46
这里唯一的派生是类本身。派生类中的'id'变量不是派生,继承等。 – EJP 2015-02-06 23:48:57