Java多态实现人喂养宠物小案例
程序员文章站
2022-04-16 15:54:18
代码要求:定义动物类属性:年龄,颜色生成空参有参构造,set和get方法行为:eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西)定义狗类继承动物类,行为:eat(String something)方法,看家lookHome方法(无参数)定义猫类继承动物类,行为:eat(String something)方法,逮老鼠catchMouse方法(无参数)定义Person类生成空参有参构造,set和get方法属性:(姓名,年龄...
代码要求:
- 定义动物类
属性:年龄,颜色
生成空参有参构造,set和get方法
行为:eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西) - 定义狗类继承动物类,行为:eat(String something)方法,看家lookHome方法(无参数)
- 定义猫类继承动物类,行为:eat(String something)方法,逮老鼠catchMouse方法(无参数)
- 定义Person类
生成空参有参构造,set和get方法属性:(姓名,年龄)
行为:keepPet( String something)方法
功能:喂养【宠物狗】和【宠物猫】,问号处自己思考,something表示喂养的东西 - 定义测试类,使用Perosn对象调用keepPet方法,实现运行结果运行结果
代码如下:
Animal类
public abstract class Animal {
private int age;//年龄
private String color;//颜色
//无参数构造方法
public Animal() {
}
//有参数构造方法
public Animal(int age,String color) {
this.age = age;
this.color = color;
}
// get/set方法
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
//动物吃东西行为
public abstract void eat(String food);
}
Dog类:
public class Dog extends Animal{
public Dog(int age, String color) {
super(age, color);
}
@Override
public void eat(String food) {
System.out.println(getAge()+"岁的"+getColor()+"的狗两只前腿死死的抱住"+food+"猛吃");
}
//狗的看家行为
public void lookHome() {
System.out.println("狗,看家");
}
}
Cat类:
public class Cat extends Animal{
public Cat(int age,String color) {
super(age, color);
}
@Override
public void eat(String food) {
System.out.println(getAge()+"岁的"+getColor()+"的猫眯着眼睛侧着头吃"+food);
}
//猫的行为,逮老鼠
public void catchMouse() {
System.out.println("猫,逮老鼠");
}
}
Person类:
public class Person {
private String name;//姓名
private int age;//年龄
//无参数构造方法
public Person() {
}
//有参数构造方法
public Person(String name,int age) {
this.name = name;
this.age = age;
}
// get/set方法
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(String something,Animal animal) {
System.out.println("年龄为"+this.getAge()+"岁的"+this.getName()+
"养了一只"+animal.getColor()+"的"+animal.getAge()+"岁的宠物");
animal.eat(something);
}
}
测试类:
public static void main(String[] args) {
//定义Person对象老王
Person laoWang = new Person("老王", 30);
laoWang.keepPet("骨头", new Dog(2,"黑颜色"));
//定义Person对象老李
Person laoLi = new Person("老李", 25);
laoLi.keepPet("鱼", new Cat(3,"灰颜色"));
}
本文地址:https://blog.csdn.net/m0_49086415/article/details/107369676