第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,我是英国人,我喜欢吃三明治!
张三在练习太极拳!
史蒂文在练习骑马!