动物类
java
package KeepPets20240710;
public class Animal {
private String color;
private int age;
public Animal(){}
public Animal(String color, int age) {
this.color = color;
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat(String something) {
System.out.println(this.age + "岁的" + this.color + "色动物在吃" + something);
}
}
猫类
java
package KeepPets20240710;
public class Cat extends Animal{
public Cat() {}
public Cat(String color, int age) {
super(color, age);
}
public void catchMouse() {
System.out.println(this.getAge() + "的" + this.getColor() + "猫在抓老鼠");
}
}
狗类
java
package KeepPets20240710;
public class Dog extends Animal{
public Dog() {}
public Dog(String color, int age) {
super(color, age);
}
public void LookHouse() {
System.out.println(this.getAge() + "的" + this.getColor() + "狗在看家");
}
}
人类
java
package KeepPets20240710;
public class Person {
String name;
int age;
public Person(){}
public Person(String name, int age) {
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 KeepPets(Animal a, String something) {
System.out.printf("%d岁的饲养员%s在喂养%d岁的%s%s吃%s\n", this.age, this.name, a.getAge(),
a.getColor(), (a instanceof Dog? "狗" : "猫") , something);
if (a instanceof Dog d) {
d.LookHouse();
} else if(a instanceof Cat c) {
c.catchMouse();
} else {
System.out.println("没这品种");
}
}
}
测试
java
package KeepPets20240710;
import java.util.Scanner;
public class KeepPetsTest {
public static void main(String[] args) {
Person p = creatPerson();
Animal aDog = creatDog();
Animal aCat = creatCat();
p.KeepPets(aDog, "骨头");
p.KeepPets(aCat, "🐟");
}
public static Person creatPerson() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入饲养员的姓名");
String name = sc.next();
System.out.println("请输入饲养员的年龄");
int age = sc.nextInt();
return new Person(name, age);
}
public static Dog creatDog() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入狗的姓名");
String name = sc.next();
System.out.println("请输入狗的年龄");
int age = sc.nextInt();
return new Dog(name, age);
}
public static Cat creatCat() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入猫的姓名");
String name = sc.next();
System.out.println("请输入猫的年龄");
int age = sc.nextInt();
return new Cat(name, age);
}
}