一、题目分析
创建动物类,动物类有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();
}
}
二、运行截图