多态的简单理解

多态就是一个物体的多种形态。

自然界中的事物比如:猫、狗、大象它们都会跑,但是跑的方式不一样。再比如:鸟、昆虫、飞机 都会飞,但是飞的方式不一样。这就是多态。

在Java中,多态就是对于同一个命令(方法),有不同的执行方式(内容)。

前提

1. 由继承或者实现

2. 有方法的重写(如果没有方法重写,那么多态的意义就没有了)

3. 父类的引用指向子类的对象

Fu f = new Zi();
等号的左边:父类的引用f
等号的右边:子类的对象new Zi();
探究的时候,注意以下两点:编译是否报错,运行的结果是子类的还是父类的

成员变量:编译看左边(就是父类中有没有,如果有就不报错),运行看左边(运行的是父类中的结果),例如父类与子类都有同种属性name,打印输出的结果是父类的值,调用的是super.name。

成员方法:编译看左边(就是父类中有没有,如果有就不报错),运行看右边(运行的是子类中重写后的结果

多态的好处

1. 增加了代码的可维护性 (由继承保证)

2. 增加了代码的可扩展性 (由多态保证)

多态的弊端

在多态中,不能访问子类独有的功能(也就是父类中没有,而子类中有的方法)。那么如何处理?

1. 直接创建一个子类的对象,并通过子类对象访问

2. 将父类的引用直接强转为子类对象(以为父类的引用指向的本来就是子类的对象,所以可以强转)

向上转型和向下转型

向上转型:由较小的类型转为较大的类型

Fu f = new Zi();

向下转型:由较大的类型转为较小的类型

Zi z = (Zi)f;

关键字:instanceof可以判断一个对象是否属于某一个类型。

使用格式如下:

对象 instanceof 类或者接口

如果属于结果为true,否则结果为false

摘自上课笔记 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值