关于Java多态

关于Java多态,总结01

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

多态(Polymorphic)

WHY?

多态存在的意义:
封装可以隐藏实现细节,使得代码模块化;
继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。
而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。耦合度讲的是模块模块之间,代码代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的的目的,模块模块之间尽量使用模块接口访问,而不是随意引用其他模块的成员变量。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是接口?

允许不同类的对象对同一消息做出响应

二、定义与使用规则HOW

1.代码规范

代码如下(示例):
//先定义一个animal大类,再定义一个子类Cat继承animal
左父类=右子类

Animal animal = new Cat();

2.使用规则

代码如下(示例):
1)访问成员变量(编译看左,运行也看左边)
看等号左边是谁,点出来的就是谁的变量(即看方法属于谁)

Animal animal = new Cat();
animal.成员变量

会点出来animal的变量


2)访问成员方法(编译看左,运行看右边)
点成员方法就可以了

Animal animal = new Cat();
animal.eat()//eat是animal中的方法,Cat类中继承并覆盖重写了eat方法。

三.关于向上转型和向下转型

1.向上转型就是普通的多态写法

即升级(把猫当作动物看待),原则上:编译看左,运行看右边。

2.向下转型

存在意义:举例,若是多态写法无法使用子类特有方法(),给这个类向下转型一波就可以了
1)向下转型就是个还原动作,将升级的父类对象还原为子类对象,原则上:必须保证之前是什么就还原成什么(猫升级为动物,必须还还原为猫而不是狗)
2)instanceof关键字进行判断:判断父类所指向的原本是什么?
本质上是个二元运算符,左边是实例化对象,右面是类
3)使用上类比基本数据类型的强制类型转换

public static void main(){
	int a = 10;
	double c = (double) a;
	
	Cat cat = (Cat) animal;//(这里写想要强制转换的类型)
}

```java
在这里插入代码片

result = cat instanceof Animal
//是的话返回true,不是返回false
``

四.其他

1.参数列表是接口的时候,会自动向上转型

可以进行简写,直接cat.方法(new Animal());

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值