import java.util.ArrayList; interface INode { INode getParent(); } abstract aspect NodeImpl { declare parents : Child implements INode; declare parents : Parent implements INode; private INode INode.fParent; public final INode INode.getParent() { return fParent; } } aspect PC extends NodeImpl { // declare parents : Tag implements INode; } class Text {} class Tag {} public class Complete { public static void main(String[] args) { ((Tag) null).getParent(); } }