多态的问题

本文详细介绍了Java中的多态性概念,包括定义、格式、前提条件以及成员访问特点。多态性允许父类引用指向子类对象,使得代码更具灵活性。在多态下,成员变量始终访问父类的,而成员方法会根据实际对象调用子类的重写方法。此外,文章还探讨了向上转型和向下转型的区别,并解释了instanceof操作符的用途。最后,多态性在接口和抽象类作为参数或返回值时的应用场景也被阐述,如匿名内部类的使用。
摘要由CSDN通过智能技术生成

1、定义:

父类的引用变量指向子类的对象

2、格式

父类类型 变量名 =new 子类对象
变量名.方法名()

3、前提:

1、继承或者实现(普通类继承,抽象类继承,接口的实现)
2、方法的重写(必须有重写,否则没有意义)

4、多态后的成员特点

多态之后,访问成员变量:
a、父类中没有这个成员变量,报错
b、父类中有这个成员变量,无论这个成员变量和子类的成员变量是否重名,都是返回父类的成员变量
多态之后,访问成员方法:
a、父类中没有这个方法,报错
b、父类中有这个方法,但是没有被子类重写,返回父类的方法
c、父类中有这个方法,且被子类重写,返回子类的方法

5、多态的转型
a、向上转型(自动类型提升):
多态就属于这一类,只能访问父类的内容,或者是重写的的子类方法
b、向下转型(强制类型转换):

double b=1.0
int a=(int)b    //基本类型的强制转换

Fu fu =new Zi()   //对象的强制转换
Zi zi=(Zi) fu   //本身是子类对象,向上转向为父类对象,可以再转为子类对象。但是如果本身是父类对象,则不可以向下转型为子类对象

5、instanceof

boolean b=对象 instanceof 类型

6、多态的一个应用

当方法的参数是接口的时候,可以传入其实现类对象,匿名内部类
当方法的参数是抽象类的时候,可以传入其子类对象,匿名内部类
当方法的参数是具体实现类的时候,可以传入本类对象及其子类,匿名内部类

当方法的返回值类型为接口的时候,可以传入其实现类对象,匿名内部类
当方法的返回值类型为抽象类的时候,可以传入其实现类对象,匿名内部类
当方法的返回值类型为具体实现类的时候,可以传入其实现类对象,匿名内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值