java – 当我可以通过引用子类访问所有方法时,为什么要引用基类
发布时间:2020-12-15 04:53:45 所属栏目:Java 来源:网络整理
导读:我正在学习 java概念. 我对 java继承概念有疑问. 在继承中,我们可以将子类实例分配给基类引用 并且我们只能访问基类功能. 我们可以将继承层次结构中的任何子类实例分配给基类引用.对于分配给特定基类引用的实例类型,我们只能访问基类函数,但我没有发现任何区
我正在学习
java概念.
我对 java继承概念有疑问. 在继承中,我们可以将子类实例分配给基类引用 并且我们只能访问基类功能. 我们可以将继承层次结构中的任何子类实例分配给基类引用.对于分配给特定基类引用的实例类型,我们只能访问基类函数,但我没有发现任何区别. 任何人都可以给我实际的概念 通过考虑层次结构中的特定基类和许多子类来解释. 解决方法
您可能希望这样做的原因是创建更强大的设计.以
Java中的Collections Framework为例.你有一个List接口,然后你有两个实现,ArrayList和LinkedList.
您可以编写程序以专门使用LinkedList或ArrayList.但是,您的程序依赖于这些特定的实现. 如果你编写的程序依赖于超类型List,那么你的程序可以适用于任何一个List实现.假设您想编写一个对List执行某些操作的方法,并且您写了这个: public void doSomething(ArrayList a){} 此方法只能使用ArrayList调用,而不能使用LinkedList调用.假设你想用LinkedList做同样的事情?那你复制你的代码吗?没有. public void doSomething(List l){} 将能够接受任何类型的List. 这背后的原理是接口的程序而不是实现.也就是说,List定义了ALL列表的功能. 这种用法有很多例子. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |