java – 实现接口的返回方法类型
发布时间:2020-12-15 08:38:07 所属栏目:Java 来源:网络整理
导读:我很想知道处理实现接口的返回类型方法的最佳实践/ SE约定是什么.具体来说,假设我们正在实现一个简单的树,接口如下: public interface ITreeNode { public ITreeNode getLeftChild(); public ITreeNode getRightChild(); public ITreeNode getParent();} 我
我很想知道处理实现接口的返回类型方法的最佳实践/ SE约定是什么.具体来说,假设我们正在实现一个简单的树,接口如下:
public interface ITreeNode { public ITreeNode getLeftChild(); public ITreeNode getRightChild(); public ITreeNode getParent(); } 我们有一个实现它的类TreeNode: public class TreeNode implements ITreeNode { private TreeNode LeftChild,RightChild,Parent; @Override public ITreeNode getLeftChild() { return this.LeftChild; } @Override public ITreeNode getRightChild() { return this.RightChild; } @Override public ITreeNode getParent() { return this.Parent; } } 我的问题是..各个实现方法的返回类型应该是ITreeNode还是TreeNode,以及原因. Eclipse自动填充TreeNode的方法,返回类型为ITreeNode.但是,即使使用@Override标志,将其更改为TreeNode也不会导致任何错误或警告. 解决方法
从Java 5开始,重写的方法可以返回超类中提到的返回类型的接口/类的任何子类.除非特别要求,否则我将坚持返回接口(这主要发生在重构客户端已经在使用特定实现类的旧代码时,而我们现在正在重构它以形成类层次结构).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |