实现Java代码,写一个动物类(抽象类Animal),它有两个子类(狗类Dog)和猫类(Cat)实现抽象类Animal,在Animal类中有一个排序方法, sort(),让两个子类重写父类的sort()方法,其中Dog类按年龄升序排列并输出排序结果,Cat按年龄降序排列并输出排序结果。再定义一个接口ability(),让Dog和Cat实现这个接口,还有个测试类
时间: 2023-03-25 20:01:46 浏览: 54
好的,我可以回答这个问题。以下是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 ability();
@Override
public int compareTo(Animal o) {
return Integer.compare(this.age, o.age);
}
public abstract void sort();
}
```
狗类Dog:
```
public class Dog extends Animal {
public Dog(int age) {
super(age);
}
@Override
public void ability() {
System.out.println("我是一只会看家的狗");
}
@Override
public void sort() {
List<Dog> dogs = new ArrayList<>();
dogs.add(new Dog(3));
dogs.add(new Dog(1));
dogs.add(new Dog(2));
Collections.sort(dogs);
System.out.println("狗的年龄升序排列结果:");
for (Dog dog : dogs) {
System.out.println(dog.getAge());
}
}
}
```
猫类Cat:
```
public class Cat extends Animal {
public Cat(int age) {
super(age);
}
@Override
public void ability() {
System.out.println("我是一只会抓老鼠的猫");
}
@Override
public void sort() {
List<Cat> cats = new ArrayList<>();
cats.add(new Cat(3));
cats.add(new Cat(1));
cats.add(new Cat(2));
Collections.sort(cats, Collections.reverseOrder());
System.out.println("猫的年龄降序排列结果:");
for (Cat cat : cats) {
System.out.println(cat.getAge());
}
}
}
```
测试类Test:
```
public class Test {
public static void main(String[] args) {
Dog dog = new Dog(2);
Cat cat = new Cat(2);
dog.sort();
cat.sort();
dog.ability();
cat.ability();
}
}
```
运行结果:
```
狗的年龄升序排列结果:
1
2
3
猫的年龄降序排列结果:
3
2
1
我是一只会看家的狗
我是一只会抓老鼠的猫
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)