我正在学习java概念。
我对java继承概念有疑问。
在继承中,我们可以将子类实例分配给基类引用
这样我们就只能访问基类函数。
我们可以将继承层次结构中的任何子类实例分配给基类引用。对于分配给特定基类引用的实例类型,我们只能访问基类函数,我没有发现任何差异。
谁能给我实际的概念
为什么我们必须将子类实例分配给基类引用?
有什么必要这样做?
相反,我们只能从子类引用中访问这些基类函数。
通过考虑层次结构中的特定基类和许多子类来进行解释。
您可能想要这样做的原因是为了创建更稳健的设计。以 Java 中的集合框架为例。您有一个 List 接口,然后有两个实现:ArrayList 和 LinkedList。
您可以编写程序专门使用 LinkedList 或专门使用 ArrayList。但是,您的程序取决于这些特定的实现。
如果您编写的程序依赖于超类型 List,那么您的程序可以适用于任一 List 实现。假设您想编写一个对列表执行某些操作的方法,并且您编写了以下内容:
public void doSomething(ArrayList a){}
该方法只能用 ArrayList 调用,不能用 LinkedList 调用。假设您想对 LinkedList 做同样的事情?然后你会复制你的代码吗?不。
public void doSomething(List l){}
将能够接受任一类型的列表。
这背后的原则是针对接口编程而不是实现。也就是说,List 定义了 ALL 列表的功能。
这种用法有很多例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)