多态的简要概括

多态

一种事务,多种形态,称为多态

前提:

  • 继承:必须存在继承关系

  • 向上转型:将子类型的引用赋值给父类型对象

  • 重写:子类重写父类方法

  • 接口多态

    InterfaceA interfaceA = new InterfaceAImpl();// 自动类型转换
    InterfaceAImpl interfaceA1 = (InterfaceAImpl)interfaceA;// 向下转型(强转)
    
  • 类的多态

    // 父类型引用 指向 子类型对象
    Object interfaceA = new InterfaceAImpl();// 自动类型转换
    InterfaceAImpl interfaceA1 = (InterfaceAImpl)interfaceA;// 向下转型(强转)
    

    编译时状态(编译器) = 运行时状态(JVM)

    编译时状态:决定对象能调用的属性和方法

    运行时状态:决定对象最终能调用那些方法(重写)

instanceof

引用 instanceof 子类型

判断 interfaceA 是不是 InterfaceAImpl 类型的引用

目的:为了防止出现类型转换异常

InterfaceA interfaceA = new InterfaceAImpl();
if (interfaceA instanceof InterfaceAImpl) {
    InterfaceAImpl interfaceA1 = (InterfaceAImpl)interfaceA;
}

多态优点

类型统一、规范代码、代码的复用

例如:当一个父类有好多子类,这些子类都重写了父类的方法(这些方法是为了一个共同的目标,即同一个功能),这些子类重写这些方法是为了以各自的不同的方式实现这个目标即功能,当其他类的方法想要调用父类的方法但是并不想确定是以何种方式实现这个方法,那么只要让这个方法的形参类型是父类的类型,那么就可以使程序动态的使用不同方式实现这个功能(即传入不同的子类)。而不需要通过写多个方法去实现不同方式完成同一个功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值