请在 下方输入 要搜索的题目:

按照要求编写一个Java应用程序:定义一个抽象类Person,包含抽象方法eat(),封装属性name、sex、age,声明包含三个参数的构造方法;定义一个Chinese类,继承自Person类,重写父类的eat()方法,并定义一个自己特有的方法shadowBoxing();定义一个English类,继承自Person类,重写父类的eat()方法,并定义一个自己特有的方法horseRiding();编写测试类,定义一个showEat()方法,使用父类作为方法的形参,实现多态,分别调用showEat()方法,通过强制类型转换调用各自类特有的方法;具体输出要求请看测试说明。

按照要求编写一个Java应用程序:定义一个抽象类Person,包含抽象方法eat(),封装属性name、sex、age,声明包含三个参数的构造方法;定义一个Chinese类,继承自Person类,重写父类的eat()方法,并定义一个自己特有的方法shadowBoxing();定义一个English类,继承自Person类,重写父类的eat()方法,并定义一个自己特有的方法horseRiding();编写测试类,定义一个showEat()方法,使用父类作为方法的形参,实现多态,分别调用showEat()方法,通过强制类型转换调用各自类特有的方法;具体输出要求请看测试说明。

发布时间:2025-06-26 12:39:36
推荐参考答案 ( 由 快搜搜题库 官方老师解答 )
联系客服
答案:```java // 抽象类Person abstract class Person { private String name; private String sex; private int age; public Person(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public abstract void eat(); public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } } // Chinese类 class Chinese extends Person { public Chinese(String name, String sex, int age) { super(name, sex, age); } @Override public void eat() { System.out.println(getName() + " is eating with chopsticks."); } public void shadowBoxing() { System.out.println(getName() + " is practicing shadow boxing."); } } // English类 class English extends Person { public English(String name, String sex, int age) { super(name, sex, age); } @Override public void eat() { System.out.println(getName() + " is eating with a knife and fork."); } public void horseRiding() { System.out.println(getName() + " is horse riding."); } } // 测试类 public class Test { public static void main(String[] args) { Person chinese = new Chinese("Li Hua", "Male", 25); Person english = new English("John Doe", "Male", 30); showEat(chinese); showEat(english); ((Chinese) chinese).shadowBoxing(); ((English) english).horseRiding(); } public static void showEat(Person person) { person.eat(); } } ```
专业技术学习
专业技术学习
搜搜题库系统