求Java代码,写一个动物类(抽象类Animal),它有两个子类(狗类Dog)和猫类(Cat)实现抽象类Animal,在Animal类中有一个排序方法, sort(),让两个子类重写父类的sort()方法,其中Dog类按年龄升序排列并输出排序结果,Cat按年龄降序排列并输出排序结果。再定义一个接口ability(),让Dog和Cat实现这个接口。
时间: 2023-03-25 20:01:15 浏览: 485
好的,以下是Java代码实现:
```
// 抽象类Animal
public abstract class Animal implements Comparable<Animal> {
private int age;
public Animal(int age) {
this.age = age;
}
public int getAge() {
return age;
}
// 排序方法
public abstract void sort();
// 接口ability()
public interface Ability {
void ability();
}
@Override
public int compareTo(Animal o) {
return this.age - o.age;
}
}
// 狗类Dog
public class Dog extends Animal implements Animal.Ability {
public Dog(int age) {
super(age);
}
@Override
public void sort() {
Collections.sort(animals);
System.out.println("狗类按年龄升序排列并输出排序结果:");
for (Animal animal : animals) {
System.out.println(animal.getAge());
}
}
@Override
public void ability() {
System.out.println("狗可以看家护院!");
}
}
// 猫类Cat
public class Cat extends Animal implements Animal.Ability {
public Cat(int age) {
super(age);
}
@Override
public void sort() {
Collections.sort(animals, Collections.reverseOrder());
System.out.println("猫类按年龄降序排列并输出排序结果:");
for (Animal animal : animals) {
System.out.println(animal.getAge());
}
}
@Override
public void ability() {
System.out.println("猫可以抓老鼠!");
}
}
```
阅读全文