java有父类对象引用指向子类对象

2025-05-02 01:25:09
推荐回答(2个)
回答1:

没错,子类相当于父类的改进或扩充,功能上子类会比父类更强大,属性更独特,定义一个父类引用指向子类对象,可以使用子类的功能并且可以抽取父类的共性,父类型的引用可以调取父类的属性和方法(包括子类中重写的父类属性或方法),但不能调用子类定义但父类没有的方法.
也有人管这种叫做面向接口编程,目的也是低耦合,只需要关心父类能做什么,不用关注子类是怎么做的,并且随时可以通过修改或者替换子类,而不用修改其他的东西.

回答2:

List 是接口
ArrayList是 List的实现类。
list a =new Arraylist();是父类引用指向子类对象,只能调用父类里有的方法。
Arraylist a =new Arraylist();更灵活。除了能调用父类以有的方法。还能调用ArrayList中独有的方法。更全面更强大。(但是也有缺点,就是Arraylist 查询快,如果有一天程序需要修改为删除快,那么原来使用 Arraylist 的时候如果使用了Arraylist 自身有的方法那么修改成linkedList相当麻烦!繁琐!)
下面请听我说,List 下有 Arraylist 和 linkedList
父类引用指向子类对象是多态的表现,
就是说一开始就用List 父类引用指向子类对象(Arraylist 和 linkedList)那么可以限制两个实现类只能用父类里有的方法,这样,程序将来无论是更换 Arraylist 也好 或者更换linkedList也罢,都不会影响其他语句。