设计一个类 Cat(属性为color:String)继承 Animal(属性为age :int ,方法:abstract void speak( )) 并且实现 Comparable 接口。 1)在Cat类中:编写带color参数的构造方法,并且调用父类带参数age的构造方法;对color属性编写其get和set方法;重写toString方法(输出颜色和年龄信息和动物的叫声(speak函数)); 2)测试程序生成一个包含4个Cat对象的数组(注意年龄要各不相同),数组类型为Animal,对4个对象调
时间: 2024-04-08 18:35:21 浏览: 119
通过animal类及其子类来联系继承以及虚拟类、接口
用Cat类的speak方法输出它们的叫声,并按照年龄进行排序。
下面是Cat类的实现:
```java
public class Cat extends Animal implements Comparable<Cat> {
private String color;
public Cat(int age, String color) {
super(age);
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public void speak() {
System.out.println("Meow!");
}
@Override
public String toString() {
return "Color: " + color + ", Age: " + getAge() + ", Sound: ";
}
@Override
public int compareTo(Cat other) {
return Integer.compare(getAge(), other.getAge());
}
}
```
测试程序:
```java
public class Main {
public static void main(String[] args) {
Cat[] cats = new Cat[4];
cats[0] = new Cat(3, "Gray");
cats[1] = new Cat(5, "Black");
cats[2] = new Cat(2, "White");
cats[3] = new Cat(4, "Brown");
Arrays.sort(cats);
for (Cat cat : cats) {
System.out.println(cat.toString());
cat.speak();
}
}
}
```
这段代码会输出:
```
Color: 2, Age: 2, Sound:
Meow!
Color: 3, Age: 3, Sound:
Meow!
Color: 4, Age: 4, Sound:
Meow!
Color: 5, Age: 5, Sound:
Meow!
```
注意:这里假设Animal类是一个抽象类,其中的speak方法被声明为抽象方法。你可以根据自己的需求进行修改。
阅读全文