多态

子类可以向父类转换
编译和运行时是不同的对象

image.png

Audi类和BMW类都为Car类的子类,所以可以用

public void goToWork(Car car){
        car.drive();
    }

替代

public void goToWork(Audi audi){
        audi.drive();
    }
public void goToWork(BMW bmw){
        bmw.drive();
    }

这就是多态

使用情况:编译和运行时的对象是有继承关系的 BMW,Audi->Car
只能子类对象传给父类对象,反之不行
如果要使用子类独有的属性或者方法,需要强制转换为子类对象

Car car;
//判断:
if(car instanceof BMW){//判断这个car对象是否为某个类的父类
        BMW bmw = (BMW)car;
        bmw.dirve();//drive指BMW特有的方法
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 父类与子类 在Java术语中,如果C1类扩展自另一个类C2,我们称C2为父类,也称超类或基类,称C1为子类,也称次...
    Steven1997阅读 1,202评论 1 2
  • 一、多态的概念 父类引用指向子类对象(内存堆区的地址) 二、多态的实现的必要条件 1 存在继承关系 2 存在方法重...
    26_f49c阅读 782评论 0 0
  • 继承 与 多态 简单介绍Object类 一. 继承 继承是非常简单而强大的设计思想,它提供了我们代码重用和程序组...
    九乡河小肥猪阅读 254评论 0 1
  • 多态性(简化代码) - 多态的规则:里氏替换原则(子类替换父类方法:只是多态表现);多态的特性:父类保存了子类的对...
    010_purple阅读 800评论 0 3
  • 今日任务: 1,能够独立使用抽象类 2,能够独立使用多态 3,能够独立使用接口 4,能够理解适配器设计模式 1. ...
    Villain丶Cc阅读 1,410评论 0 17