java进阶之--多态

本文详细介绍了Java中的多态概念,包括父类引用指向子类对象、引用类型间的强转与自动/强制类型转换,以及instanceof关键字的用法。重点阐述了多态在容器、参数和返回值中的应用,以及其实现优势如代码可扩展性和减少冗余。
摘要由CSDN通过智能技术生成

今日掌握:

多态的概念

引用类型间的强转

多态的三种使用场景

instanceof关键字的语法和使用

引言:父类引用的多种具体值的不同形态

概念:父类引用可以指向不同的子类对象

代码格式:

父类引用名=子类对象

父类类名 引用名=new 子类类名
使用要求:

1:实际创建的是子类对象

2:优先执行子类内容

3:无法访问子类独有内容(原因是编译不通过)

4:编译器关注的是引用类型,解释器关注的是实际对象类型

左边决定能做什么,右边决定谁去做

引用类型间的类型转换

自动类型转换

父类引用=子类对象;

强制类型转换

子类类型=(子类类型)父类引用

子类类名 引用名 =(子类类名)父类引用名;

只能转向父类引用原本指向的子类类型

代码演示:

Animal a1=new Dog();

Cat c=(Cat)a1;

代码解释:

a1类型为Animal,满足语法规范,编译通过,但是a1的实际对象类型是Dog,不玩组执行逻辑,所以运行报错

同级子类之间无法进行类型强转

多态的应用场景

1:用于容器,将容器(变量、数组、集合等)类型声明为大类型,则内部可以存放不同的小类型对象

2:用于参数,将方法形参类型声明为大类型,则传入实参时可以为不同的子类对象

3:用于返回值,将方法返回值类型声明为大类型,,则可以实际return不同的子类对象

接收返回值时,也应该使用父类引用类型接收

instanceof关键字

基本类型比较值,引用类型比较地址

判断引用类型是否与指定类型兼容

引用名 instanceof 类名

使用规范:

1:子类对象可以被父类类型兼容

2:父类对象无法被子类对象兼容

3:统计子类之间无法兼容

大类型可以兼容小类型,但是小类型无法兼容大类型

多态的优势:

1:更加贴合显示逻辑

2:提高代码扩展性

3:减少代码冗余

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值