java 父类 子类 转换_java 子类父类相互转换

本文探讨了Java中子类转父类的特性,强调父类引用指向子类对象时,属性是父类的,而方法如果被子类重写则会执行子类的方法。同时,指出父类不能直接转换为子类,必须确保父类引用实际指向的是子类对象。总结了Java类型转换的关键点和注意事项。
摘要由CSDN通过智能技术生成

子类转父类 (父类引用指向子类对象)

子类可以转换为父类,如下父类FruitTest与其子类AppleTest

classFruitTest {

String str= "FruitTest";public String get() {returnstr;}public void set(String str) {this.str =str;}

}class AppleTest extendsFruitTest {

String str= "AppleTest";

}

FruitTest obj = new AppleTest(); 是正确的

obj.str 结果为"FruitTest",不是子类中的str("AppleTest")。obj的属性变量都是父类的。

obj.get() 得到的是"FruitTest",执行的是父类中的方法,但若是子类重写了父类方法,执行的则是子类的方法

class AppleTest extendsFruitTest {

String str= "AppleTest";public String get() {returnstr;};

}

则obj.get()得到的是"AppleTest" 。

总结:子类可以转换为父类,即父类引用指向子类对象。引用的属性是父类的,方法若果被子类重写则是子类的方法。

父类转子类(子类引用指向父类对象)

父类不可以直接转换为子类,AppleTest obj = new FruitTest();  是错误的。

AppleTest obj = (AppleTest) new FruitTest(); 编译时也会报错。

FruitTest obj = new AppleTest();

AppleTest test = (AppleTest)obj;  这两句是正确的。

父类若转换为子类,父类引用必须指向的是一个子类对象。实质上是将一个指向子类对象的父类引用改为了子类引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值