Java 多态

多态:是同一个行为具有不同表现形式的能力,主要用来实现动态联编(动态性)

💡 形象举例:

比如:现实生活中,有小宝、大宝,大宝是小宝的爸爸。

有一天,小宝接到打给大宝的电话,让大宝去喝喜酒,但是大宝不在家,小宝急中生智,打扮成大宝的样子去参加宴席。到宴席后,别人都以为大宝来了,其实是小宝打扮成爸爸的样子来替代大宝的。

这个故事告诉我们子类可以打扮成父类的样子去做父类能做得事情,这样的灵活性是非常强的,这顿饭对于别人来说是吃到大宝的肚子里,但是其实是吃到小宝的肚子里。

多态实现的必要条件:

1. 必须要有继承,即子类继承父类

2. 子类里必须要重写父类的方法(有重写才有变化,才叫做多态,实现不同效果)

3. 父类引用指向子类对象 (子类的对象赋值给父类的变量)

👇解释说明:

⭕ 大小类型转换是多态

前提:创建了Animal类, Cat类、Dog类继承Animal类(并且两个子类内有父类方法的重写)

Animal animal = new Cat();(这种方法不出错,与类型转换中的自动类型转换相似,Animal是大类(更抽象),Dog类是小类(更具体),把小类(具体)赋值给大类(抽象)——> 可以自动类型转换:子类自动转换为父类)

🔹 这表面上看起来确实是Animal类变量,但实际上调用的是Dog类的对象(就类似于虽然是小宝吃了饭,但大家都以为是大宝吃的饭)

🔹 子类可以使用父类的方法,但父类调用不了子类的方法

🔹 此时尽管实际上是Dog子类的对象,但是只能遵循父类的要求,不能调用Dog子类中的方法,可以调用子类中重写父类的方法(虽然是小宝,但只能做大宝做的事)👇

父类不能自动转化成子类(需要强制转换)

父类强制转换为子类成功的前提:父类指向子类

⭕ 作为方法的参数也可以是多态 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值