java,设计猫类,包括种类,名字,年龄的成员变量,成员方法 要求 1、编写合理的重载构造方法 2、编写各成员变量的set,get方法 3、在测试类中创建两个对象,一个对象使用接口赋值,另一个使用初始化的方式赋值,输出两个对象的信息和行为
时间: 2024-10-15 10:09:18 浏览: 64
在Java中,我们可以进一步完善`Cat`类以满足上述要求。首先,我们需要定义一个接口`Animal`,然后让`Cat`类实现这个接口,以便支持通过接口的方式来创建对象。以下是详细的代码:
```java
// 定义Animal接口
interface Animal {
String getAnimalName();
}
// Cat类
public class Cat implements Animal {
private String species;
private String name;
private int age;
// 重载构造方法
public Cat(String species, String name, int age) {
this.species = species;
this.name = name;
this.age = age;
}
// 使用接口的方式创建对象
public Cat(String animalType) {
this.animalType = animalType;
this.species = "Domestic";
this.name = "Generic Cat";
this.age = 0;
}
// 成员变量的get和set方法
@Override
public String getAnimalName() {
return name;
}
public String getSpecies() {
return species;
}
public void setSpecies(String species) {
this.species = species;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
System.out.println("年龄不能是负数!");
}
}
// 行为方法
public void meow() {
System.out.println(name + " the " + species + " cat is meowing.");
}
// 测试类
public static void main(String[] args) {
// 使用接口赋值
Animal catInterface = new Cat("Feline");
System.out.println("Interface cat info: Name - " + catInterface.getAnimalName());
// 使用初始化方式赋值
Cat catInstance = new Cat("Siamese", "Whiskers", 5);
System.out.println("Instantiated cat info: Species - " + catInstance.getSpecies() + ", Name - " + catInstance.getName() + ", Age - " + catInstance.getAge());
// 输出行为
catInterface.meow(); // 通过接口调用meow方法
catInstance.meow(); // 通过实例调用meow方法
}
}
```
阅读全文