多态

多态

多态(polymorphism)具有表现多种形态的特征,更专业化的说话是同一个实现接口,使用不同的实例而执行不同的操作

多态
1、多态:同一个对象,在不同时刻体现出来的不同状态。
2、多态的前提:
  1)要有继承关系或实现关系(接口);
  2)要有方法重写;
  3)要有父类或者父接口引用指向子类`Fu f= new Zi();
    注意:形参实参形式的(形参父类实参子类)。
3、多态的分类:
  1)具体类多态

class Fu{}
class Zi extends Fu{}

Fu f= new Zi()//父类引用指向子类

​ 2)抽象类多态(常用)

abstract class Fu{}
class Zi extends Fu{}

Fu f= new Zi();//抽象父类引用指向子类

​ 3)接口多态(常用)

interface Fu{}
class Zi implements Fu{}

Fu f= new Zi();//父接口引用指向子类
多态中成员访问特点
如,Fu f= new Zi();//左父类右子类

重点:成员方法,运行时,结果为子类重写的成员方法的结果。

  • 成员变量:编译看左边,运行看左边。
  • 构造方法:创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
  • 成员方法:编译看左边,运行看右边。(方法重写的意义)
  • 静态方法:编译看左边,运行看左边。静态和类相关,算不上重写,所以访问还是左边的。
提醒:理解这些的时候要记得继承啊方法重写它们存在的意义所在。就好理解啦。

向上转型和向下转型

一、概念

向上转型是指将子类的实例赋值给父类类型的变量。
向下转型是指将父类的实例赋值给子类类型的变量。

二、向上转型

1、向上转型后父类的引用所指向的属性是父类的属性。
2、如果子类重写了父类的方法,那么父类引用指向的或者调用的方法是子类的方法,这个叫动态绑定(实现多态)。
3、父类引用不能调用子类自己的方法。
4、向上转型会丢失子类的新增方法,同时会保留子类重写的方法。

三、向下转型

编译时需要强制类型转换,father前面的必须添加(Son)。
运行时会出现java.lang.ClassCastException错误,可使用instanceof来避免出错此类错误。
向下转型可以得到子类的所有方法(包含父类的方法)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值