希望写一个类的抽象,使得实现它的类都包含返回自己的方法

譬如有这么一个类
[code="java"]
interface ITreeNode{
public ITreeNode getParent(){return parent;}
public List getSons() {return sons;}
}
[/code]

现在的问题是:
如果有个类RealTreeNode从它继承,结果一定是这样:
[code="java"]
class RealTreeNode implements ITreeNode{
List sons;
RealTreeNode parent;
public ITreeNode getParent(){return parent;}
public List getSons() {return sons;}
}
[/code]

我希望能是这样:
[code="java"]
class RealTreeNode implement ITreeNode{
List sons;
RealTreeNode parent;
public RealTreeNode getParent(){return parent;}
public List getSons() {return sons;}
}
[/code]

换句话说,我希望写这样的类的抽象,即包含两个方法getParent和getSons,它们返回[b]该类自身[/b]和[b]List<该类自身>[/b]。应该如何写?

你试试这个,不知道行不

[code="java"]
public abstract class ITreeNode {
List sons;
ITreeNode parent;

ITreeNode(List<ITreeNode> sons, ITreeNode parent) {
    this.sons = sons;
    this.parent = parent;
}

public abstract T getParent();

public abstract List<T> getSons();

}[/code]

你连继承和接口都没分清楚