第1关:通过任务一
编程要求
-
声明一个抽象类
Pet,封装属性name和sex,声明一个带有两个参数的构造函数,声明抽象方法void talk()和void eat(); -
声明一个
Dog类继承自Pet,封装属性color,声明带有三个参数的构造函数,复写talk()和eat()方法; -
声明一个
Cat类继承自Pet,封装属性weight,声明带有三个参数的构造函数,复写talk()和eat()方法; -
编写测试类,通过有参构造函数实例化
Dog类对象,调用talk()方法和eat()方法;通过有参构造函数实例化Cat类对象 ,调用talk()方法和eat()方法; -
具体输出要求请看测试说明。
测试说明
测试输入: 泰迪 male brown 波斯猫 male 2.5 预期输出: 名称:泰迪,性别:male,颜色:brown,汪汪叫 泰迪吃骨头! 名称:波斯猫,性别:male,体重:2.5kg,喵喵叫 波斯猫吃鱼!



第2关:通过任务二
编程要求
按照要求编写一个Java应用程序:
-
定义一个抽象类
Person,包含抽象方法eat(),封装属性name、sex、age,声明包含三个参数的构造方法; -
定义一个
Chinese类,继承自Person类,重写父类的eat()方法,并定义一个自己特有的方法shadowBoxing(); -
定义一个
English类,继承自Person类,重写父类的eat()方法,并定义一个自己特有的方法horseRiding(); -
编写测试类,定义一个
showEat()方法,使用父类作为方法的形参,实现多态,分别调用showEat()方法,通过强制类型转换调用各自类特有的方法; -
具体输出要求请看测试说明。
测试说明
测试输入: 张三 男 20 史蒂文 男 22 预期输出: 姓名:张三,性别:男,年龄:20,我是中国人,我喜欢吃饭! 姓名:史蒂文,性别:男,年龄:22,我是英国人,我喜欢吃三明治! 张三在练习太极拳! 史蒂文在练习骑马!













