面向对象的四大特性之多态

背景:java类中同一个方法可以有多种行为,而这种操作称之为多态
那么如何实现多态呢?
目前多态有两种方式:①静态多态②动态多态
①静态多态:重载的多态在编译的时候已经确定了,所以称之为静态多态
静态多态的实现方式:重载(overload)
重载究竟又是何方神圣呢?
一个类里有2个或者2个以上的方法满足如下条件:
1:方法名相同
2:参数列表不同
3:对访问修饰符和返回类型没有要求
在这里插入图片描述
②动态多态
它有两种实现方式:
一:重写,二:向上转型
下面来一一介绍这两种实现方式
一:重写(override)
定义:父类和子类存在2个方法,满足以下条件
①方法名相同
②参数列表相同
③子类方法的返回类型<=父类
A:如果返回类型是基本类型,则子类和父类相同
B:如果是引用类型,则子类的返回类型要求是和父类相同或者是父类返回类型的子类
④子类方法的可见性(访问修饰符权限)>=父类
⑤子类方法抛出的异常类型<=父类
二:向上转型
原型 引用变量=new 滋生类();
1 原型是父类,包括抽象类
滋生类为其子类,通过原型只能访问父类中定义的属性和方法。子类中新增的属性和方法通过此引用无法访问。

父类的引用可以指向子类的实例。子类的引用不能指向父类的实例。
在这里插入图片描述

一个类中有多个相同的方法(指的是重写的方法),以及有多个同名属性,调用哪个?

代码:
在这里插入图片描述
在这里插入图片描述
1个类中有多个同名方法(指的是多个重写的方法),调用哪个方法看等于号右边
1个类中有多个同名属性,调用哪个属性看等于号左边

2 原型是接口
滋生类为接口的实现类: 通过这个引用只能访问这个接口中定义的方法,其它的属性和方法通过此引用无法访问。

代码:
在这里插入图片描述

动态多态通过代码实现,首先定义一个方法,将原型作为方法的形参。

例如:

以父类作为形参:
在这里插入图片描述
以接口作为形参:
在这里插入图片描述
网上有很多博客在介绍多态时的三个必要条件
一、继承;
二、重写;
三、父类引用指向子类对象(向上转型)。
Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值