在接口方法中返回子类
Returning subclass in an interface method
我想做一个链表项目,我在其中创建了一个接口和一个 class
CLASS:
public class MainNode<T> implements Node<T>
{
public T data;
public MainNode<T> next;
public MainNode<T> nextIs()
{
return next;
}
}. //all other methods are defined and work fine
接口:
public interface Node<T>
{
public SUB_CLASS_RETURN_TYPE nextIs();
} //all other methods are declared as needed
问题:问题是SUB_CLASS_RETURN_TYPE应该写什么到return对象或derived/sub的引用class
你能做的就是使用泛型
public interface Node<N extends Node<N>> {
public N nextLs();
}
public class MainNode implements Node<MainNode> {
@Override
public MainNode nextls() {
...
}
}
我想做一个链表项目,我在其中创建了一个接口和一个 class
CLASS:
public class MainNode<T> implements Node<T>
{
public T data;
public MainNode<T> next;
public MainNode<T> nextIs()
{
return next;
}
}. //all other methods are defined and work fine
接口:
public interface Node<T>
{
public SUB_CLASS_RETURN_TYPE nextIs();
} //all other methods are declared as needed
问题:问题是SUB_CLASS_RETURN_TYPE应该写什么到return对象或derived/sub的引用class
你能做的就是使用泛型
public interface Node<N extends Node<N>> {
public N nextLs();
}
public class MainNode implements Node<MainNode> {
@Override
public MainNode nextls() {
...
}
}