多态讲解

多态

多态:一个事务具备的不同形态,叫多态

  • 实例:
    。你:现在在教室里,你的形态是学习(学生形态)
    出去逛商场,你的形态是顾客
    回家路上,发现一个孩子落水,英雄形态
对象的多态性
  • 对象多态性前提:
    。要有继承或者接口实现
    。方法的重写
    。父类或者接口的引入变量,指向自己的子类或者实现类对象(定义)
  • 子类父类多态实现
  • 抽象类和子类
public abstract class Persion {
 public abstract void eat();
}
public class Student extends Persion{
 @Override
 public void eat() {
  System.out.println("吃吃吃");
 }
}
public class Test03 {
  public static void main(String[] args) {
   Persion persion=new Student();
   persion.eat();
 }
}
  • 接口和实现类
    在这里插入图片描述
多态的实现细节
  • 多态的程序中,子类父类中成员变量特点
    。编译期:看父类中是否由这个变量,如果有编译成功,没有编译失败
    。运行期:运行的是父类中的成员变量
  • 多态的程序中,子类父类中成员方法特点
    。编译期:看父类中是否有这个方法,如果有编译成功,没有编译失败
    。运行期:运行子类的方法重写
  • 小总结:Fu f=new Zi();
    。成员变量:编译看左边,运行看左边
    。成员方法:编译看左边,运行看右边
    为什么编译是父类,运行是子类(成员方法)
    在这里插入图片描述
    在这里插入图片描述
    ●多态的好处和弊端:
    。好处:运行子类的重写方法,多态程序中可以随时扩展子类对象
    。弊端:多态中,能调用子类父类的共有成员,不能调用子类的特有成员
类型转换时候出现的异常问题

在这里插入图片描述
类型转换异常:ClassCastException
解决异常的出现:关键是在要转换的对象上,判断这个对象到底是什么对象

  • 运算符 instanceof 作比较
    。比较结果是布尔类型
    。instanceof 比较出要转换的对象是哪个类的对象
    。语法:
    引用类型变量 instanceof 类名
    例子:a instanceof Cat 含义:a是不是Cat对象呢
多态案例

需求:有一台笔记本电脑,笔记本上面有接口存在USB,USB是真实存在的接口,使用笔记本的人可以向接口上连接一些外接设备,鼠标、键盘、手机、打印机…
笔记本的厂家,不会预先想到USB接口上,会连接哪些设备
设计一台笔记本电脑,出现USB接口,可以连接任意的外接设备
核心技术点:方法的参数是接口的类型,调用方法传递实现类对象,多态调用,执行实现类的重写方法

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值