【训练6】 动物分类(帮助理解向下转型)

一、题目分析

    创建动物类,动物类有3个子类:鹰、青蛙和蝗虫。创建3个动物类,分别强制转换成3个子类,执行3个子类吃食物的方法。

  另外代码注释写的很详细,希望能够帮助你们理解这个Java题目。

1.动物类
/*
 * Copyright (c) 2020, 2023, webrx.cn All rights reserved.
 *
 */
package bbb;

/**
 * <p>Project: jse2303 - Animal</p>
 * <p>Powered by webrx On 2023-07-14 20:02:09</p>
 * <p>描述:<p>
 *
 * @author 简单遗忘 [814736551@qq.com]
 * @version 1.0
 * @since 17
 */
public class Animal {
//    【训练6】 动物分类
//    创建动物类,动物类有3个子类:鹰、青蛙和蝗虫。创建3个动物类,分别强制转换成3个子类,执行3个子类吃食物的方法。

    private String name;

    //生成get和set方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
2.鹰类
/*
 * Copyright (c) 2020, 2023, webrx.cn All rights reserved.
 *
 */
package bbb;

/**
 * <p>Project: jse2303 - Ying</p>
 * <p>Powered by webrx On 2023-07-14 20:03:12</p>
 * <p>描述:<p>
 *
 * @author 简单遗忘 [814736551@qq.com]
 * @version 1.0
 * @since 17
 */
public class Ying extends Animal {
    void eat() {
        System.out.println("吃青蛙\n");
    }

}
3. 青蛙类 
/*
 * Copyright (c) 2020, 2023, webrx.cn All rights reserved.
 *
 */
package bbb;

/**
 * <p>Project: jse2303 - Wa</p>
 * <p>Powered by webrx On 2023-07-14 20:03:40</p>
 * <p>描述:<p>
 *
 * @author 简单遗忘 [814736551@qq.com]
 * @version 1.0
 * @since 17
 */
public class Wa extends Animal {
    void eat() {
        System.out.println("吃虫子\n");
    }

}
4. 虫子类
/*
 * Copyright (c) 2020, 2023, webrx.cn All rights reserved.
 *
 */
package bbb;

/**
 * <p>Project: jse2303 - Chong</p>
 * <p>Powered by webrx On 2023-07-14 20:03:59</p>
 * <p>描述:<p>
 *
 * @author 简单遗忘 [814736551@qq.com]
 * @version 1.0
 * @since 17
 */
public class Chong extends Animal {
    void eat() {
        System.out.println("吃庄家\n");
    }
}
5.测试类
/*
 * Copyright (c) 2020, 2023, webrx.cn All rights reserved.
 *
 */
package bbb;

/**
 * <p>Project: jse2303 - Text</p>
 * <p>Powered by webrx On 2023-07-14 20:20:13</p>
 * <p>描述:<p>
 *
 * @author 简单遗忘 [814736551@qq.com]
 * @version 1.0
 * @since 17
 */
public class Text {
    public static void main(String[] args) {
        //先向上转型获取父类对象
        Animal a1 = new Ying();
        Ying y = (Ying) a1;//向上转型,将父类对象强制转换为父类类型
        y.setName("🦅");
        System.out.print(y.getName());
        y.eat();
        //青蛙吃虫
        Animal a2 = new Wa();//先向上转型获取父类对象
        Wa w = (Wa) a2;//在向下转型,可以调用子类特有方法
        w.setName("🐸");
        System.out.print(w.getName());
        w.eat();
        //先向上转型获取父类对象
        Animal a3 = new Chong();
        //在向下转型调用子类特有的方法
        Chong c = (Chong) a3;
        c.setName("🐛");
        System.out.print(c.getName());
        c.eat();

    }
}

二、运行截图

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值