java继承与多态(3)多态

概念: 一个对象有多重形态(父类,祖父类),这就是对象的多态性
代码中的多态性就是:父类引用指向子类
格式:父类名 对象名 = new 子类名称() or 接口名 对象名 = new 实现类名()(左父右子)
在这里插入图片描述

1 成员变量在多态中的特点

成员变量不能覆盖重写
编译和运行都看等号左边
在这里插入图片描述

2 多态中成员方法使用特点

编译看等号左边,运行看右边
在这里插入图片描述

3 使用多态的好处

new的子类对象变化时,调用的方法可以不必改变,因为调用的方法为父类抽象方法,然后在子类中具体实现
在这里插入图片描述

4 对象的向上转型

对象的向上转型就是多态写法父类名 对象名 = new 子类名()
含义:创建一个子类对象,把他当做父类使用
特点:

  • 父类的方法是抽象的,调用这个抽象方法能具体实现不同子类的同种方法
  • 向上转型一定是安全的,从小范围转向大范围类似于double n = 100int -->double这种自动类型转换
    在这里插入图片描述
    弊端: 父类不能调用子类的特有方法(父类没有的方法)
    解决方法就是用向下转型还原

5 对象的向下转型

格式子类名称 对象名 = (子类名称) 原本父类对象
将父类对象还原成本来的子类对象
类似于强制类型转换
如果还原的不是本来的子类对象,就会出现java.lang.ClassCastException类转换异常,但是编译不会报错
在这里插入图片描述

6 instanceof判断父类的引用所指向的对象

格式:对象 instanceof 类型得到boolean值结果
假如父亲朋友到家做客,朋友想认识下两个孩子,于是父亲叫来两个孩子做自我介绍
在这里插入图片描述
通过instanceof判断传入的参数中,父类的引用所指向的对象是哪个,然后分别调用各自的方法

发布了90 篇原创文章 · 获赞 4 · 访问量 1448

猜你喜欢

转载自blog.csdn.net/weixin_44145258/article/details/103347654