Java_向下转型的复习

先定义一个Fruit()类,在类中分别编写big(),mid(),small()方法。再定义一个Apple()类,该类中重写mid()方法,并写一个子类特有的sweet()方法。然后编写测试类Test(),在Test类中先进行向上转型再向下转型。直接上代码。

public class Fruit {
    public void big(){
        System.out.println("大水果");
    }
    public void mid(){
        System.out.println("中型水果");
    }
    public void small(){
        System.out.println("小水果");
    }
}
public class Apple extends Fruit{
    public void mid(){
        System.out.println("中型水果哈哈哈");
    }
    public void sweet(){
        System.out.println("苹果很甜");
    }
}
public class Test {
    public static void main(String[] args) {
        Fruit apple01 = new Apple();//上转型
        //我们尝试调用两个Apple类的方法,发现调用不到sweet()方法(这个为子类特有的方法)
        apple01.mid();
        //apple01.sweet();
        //我们将编译类型转成Apple 父类的引用指向的是当前目标类型的对象
        Apple apple02 =(Apple) apple01;
        apple02.sweet();//成功调用到sweet()方法
    }
}

运行结果如下

中型水果哈哈哈
苹果很甜

 总结

语法:子类类型 引用名 = (子类类型) 父类引用

只能强转父类的引用,不能强转父类的对象

要求父类的引用指向的是当前目标类型的对象

向下转型后,可以调用子类类型中所有的成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值