第四题:根据需求完成代码: 1.定义动物类 属性: 年龄,颜色 行为: eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西) 生成空参有参构造,set和get方法 2.定义狗类继承动物类 行为: eat(String something)方法,看家lookHome方法(无参数) 3.定义猫类继承动物类 行为:eat(String something)方法,逮老鼠catchMouse方法(无参数) 4.定义Person类 属性: 姓名,年龄 行为: keepPet(Dog dog,String something)方法 功能:喂养宠物狗,something表示喂养的东西 行为: keepPet(Cat cat,String something)方法 功能:喂养宠物猫,something表示喂养的东西 生成空参有参构造,set和get方法 5.定义测试类(完成以下打印效果): keepPet(Dog dog,String somethind)方法打印内容如下: 年龄为30岁的老王养了一只黑颜色的2岁的宠物 2岁的黑颜色的狗两只前腿死死的抱住骨头猛吃 keepPet(Cat cat,String somethind)方法打印内容如下: 年龄为25岁的老李养了一只灰颜色的3岁的宠物 3岁的灰颜色的猫眯着眼睛侧着头吃鱼*/package com.heima.tes4;public class Person { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void keepPet(Animal a, String something) { if (a instanceof Dog) { Dog d = (Dog) a; d.eat(something); System.out.println("年龄为" + age + "岁的" + name + "养了一只" + d.getColor() + "颜色的" + d.getAge() + "岁的宠物"); } else if (a instanceof Cat) { Cat c = (Cat) a; c.eat(something); System.out.println("年龄为" + age + "岁的" + name + "养了一只" + c.getColor() + "颜色的" + c.getAge() + "岁的宠物"); } }}最后一问 为什么要用强制类型转换,还要调用d.eat(something);这个方法 ,真的是看不懂啊,求解决,万分感谢!
添加回答
举报
0/150
提交
取消