Java转型简单学习

  1. 对于向上转型,只要是其父类,或者父接口,可以使用向上转型来转为该类型。相当于父类引用指向子类对象。
    方便后续扩展。加入父类又有了新的实现子类,原来的涉及父类类型的地方无需大量修改。

  1. 向下转型:只有当该变量本来是其子类,才可以向下转型为该类型。否则不能转型,运行时报错。
    例如:如果Phone是父类,SmartWatch是子类(可能不符合逻辑,个人测试简单使用的实例)
public class Main {
    public static void main(String[] args){
        Phone aPhone = new Phone();
        SmartWatch smartWatch = (SmartWatch) aPhone;

        System.out.println(smartWatch.getTYPE());
    }
}

Exception in thread "main" java.lang.ClassCastException: my.InterfaceTest.Phone cannot be cast to my.InterfaceTest.SmartWatch
	at my.InterfaceTest.Main.main(Main.java:10)

只要是子类或者实现了该接口的类,即使是用父类来接受也可以转为另一个接口。
例如:

// 手机类
public class Phone implements Usbable, Phoneable{
	// 实现方法省略
}
// usb接口
public interface Usbable {
    Double power();
    String linkType();
}
// 下述代码可以正常运行
Phoneable aPhone = new Phone();
System.out.println(((Usbable) aPhone).power());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值