设计一个类 Cat(属性为color:String)继承 Animal(属性为age :int ,方法:abstract void speak( )) 并且实现 Comparable 接口。 1)在Cat类中:编写带color参数的构造方法,并且调用父类带参数age的构造方法;对color属性编写其get和set方法;重写toString方法(输出颜色和年龄信息和动物的叫声(speak函数)); 2)测试程序生成一个包含4个Cat对象的数组(注意年龄要各不相同),数组类型为Animal,对4个对象调用deposit方法各一次,然后对其依据年龄进行排序(调用Arrays.sort方法), 输出排序后的结果。
时间: 2024-04-08 20:35:19 浏览: 30
下面是根据您的要求设计的Cat类:
```java
import java.util.Arrays;
abstract class Animal {
int age;
public Animal(int age) {
this.age = age;
}
abstract void speak();
}
class Cat extends Animal implements Comparable<Cat> {
private String color;
public Cat(String color, int age) {
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: " + age + ", Speak: ";
}
@Override
public int compareTo(Cat otherCat) {
return Integer.compare(this.age, otherCat.age);
}
}
public class Main {
public static void main(String[] args) {
Cat[] cats = new Cat[4];
cats[0] = new Cat("Black", 4);
cats[1] = new Cat("White", 2);
cats[2] = new Cat("Gray", 6);
cats[3] = new Cat("Brown", 3);
for (Cat cat : cats) {
cat.speak();
}
Arrays.sort(cats);
for (Cat cat : cats) {
System.out.println(cat.toString());
cat.speak();
}
}
}
```
这段代码定义了一个抽象类Animal和一个继承Animal类的Cat类。Cat类实现了Comparable接口,用于比较猫的年龄。Cat类具有一个color属性,并且提供了相应的getter和setter方法。还实现了speak方法来输出猫的叫声。重写了toString方法,以便在输出时显示猫的颜色、年龄和叫声信息。
在Main类中,我们创建了一个包含4个Cat对象的数组,并对每个对象调用了speak方法。然后使用Arrays.sort方法对数组按年龄进行排序,并输出排序后的结果。
阅读全文