多态的前提--java进阶day02

1.多态的前提条件

第一点和第二点都很好理解,第三点父类引用指向子类对象是什么意思?以下图进行讲解

我们以前的写法,如下图,叫做子类引用指向子类

那父类引用呢?就是把左边换成父类Animal即可

因为dog和cat都是Animal的子类,所以二者皆可用该种引用方式

并不是所有的对象都可以左右两边类型不一致来创建 如下图

因为dog不是cat的父类,不是父类引用指向子类对象,就不能用多态的方式来创建对象,要想两边类型不一致,左边就必须是父类,右边是子类

2.多态的两种现象

1.对象多态

像上图这种创建对象的方式,我们称为对象多态

对象多态的好处在于形参,如果一个方法中形参是父类,那么我们在调用该方法时,括号里面就可以放入任意的子类

实参给形参赋值,就相当于普通的变量赋值

这样我们就可以通过一个父类使用到很多的子类,大大减少了代码的臃肿

对象多态,直接创建对象的意义不大,主要好处体现在调用方法传参

2.行为多态

可以根据父类引用的是哪个子类,而调用子类中的方法

这里先让Animal接收dog对象,这时eat()就会打印dog类的方法。Animal接收cat对象,打印的也就是猫吃鱼



虽然都是eat()方法,但是Animal接收的对象不同,方法展现的形式也不同

虽然清楚了多态的特点,但是为什么会有这些现象,下个知识点进行讲解

posted @ 2025-02-24 22:01  直実  阅读(13)  评论(0)    收藏  举报