在Java中,如果需要覆写一个方法,直接@Override就可以了。但是对于字段属性,java则会记住具体该字段具体所在的类。
import org.junit.Assert;
public class ProperitesTest {
public static class A {
private String abc;
public A(String abc){ this.abc = abc; }
public String getABC(){ return abc; }
}
public static class B extends A{
private String abc;
public B(String abcSu, String abc){ super(abcSu); this.abc = abc; }
public String getABC(){ return abc; }
public String superGetABC(){ return super.getABC(); }
}
public static void main(String[] args) {
B element = new B("A", "B");
Assert.assertEquals("B", element.getABC());
Assert.assertEquals("A", element.superGetABC());
Assert.assertEquals("B", ((A)element).getABC());
Assert.assertEquals("B", element.abc);
Assert.assertEquals("A", ((A)element).abc);
}
}
EMF在模型设计阶段只有字段的概念,即Attribute,如果在ecore中存在两个一样的属性,生成Generate Model时会报错。而EMF的校验试通过Feature来判断,如果子类该属性需要特殊处理的话,子类该如何处理呢?改ecore的校验?!