Hi Johan: What is Java's and Demeter/Java's policy on overriding of instance variables? Consider: A = B. B : C *common* U. C : D *common* V. D = . U : V. V = "v". Main = . Does Java allow this? Is the l of a D-object of class V? Should Demeter/Java allow this too? Currently we get a compilation error. -- Karl demjava -tracevis -displayvis -printvis -copyvis -equalvis -outputdir ./gen -code -grammar program.cd program.beh CLASSPATH=./gen:$CLASSPATH javac -J-mx32m -d ./gen -depend -deprecation gen/A.java gen/ASCII_UCodeESC_CharStream.java gen/B.java gen/C.java gen/CopyVisitor.java gen/D.java gen/DisplayVisitor.java gen/EqualVisitor.java gen/Main.java gen/ParseError.java gen/Parser.java gen/ParserConstants.java gen/ParserTokenManager.java gen/PrintVisitor.java gen/Token.java gen/TraceVisitor.java gen/U.java gen/UniversalVisitor.java gen/V.java gen/__Subtraversal.java gen/C.java:4: Method redefined with different return type: V get_l() was U get_l() public V get_l() { return l; } ^ gen/D.java:4: Variable 'l' is used twice in the argument list of this method. public D(U l, V l) { ^ 2 errors make[1]: *** [gen/compile] Error 1 make: *** [gen/Main.class] Error 2