Animal、Swim、Dog、Chick、Fish和SwimTest类:---------------------------2遍 Animal类:name、age、color、Animal(参)、drink()、abstract eat() Swim接口:swim() Dog类:继承Animal、实现Swim接口,重写eat()、lookHome()、重写swim() Chick类:继承Animal,重写eat()、layEggs() Fish类:继承Animal、实现Swim接口,重写eat()、重写swim() SwimTest:创建1个Dog对象、1个Chick对象、1个Fish对象,并测试(能访问的都访问)
时间: 2024-01-26 14:02:44 浏览: 147
st-link使用教程
```java
abstract class Animal {
String name;
int age;
String color;
Animal(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
void drink() {
System.out.println("动物正在喝水");
}
abstract void eat();
}
interface Swim {
void swim();
}
class Dog extends Animal implements Swim {
Dog(String name, int age, String color) {
super(name, age, color);
}
@Override
void eat() {
System.out.println("狗正在进食");
}
void lookHome() {
System.out.println("狗正在看家");
}
@Override
public void swim() {
System.out.println("狗正在游泳");
}
}
class Chick extends Animal {
Chick(String name, int age, String color) {
super(name, age, color);
}
@Override
void eat() {
System.out.println("小鸡正在啄米");
}
void layEggs() {
System.out.println("小鸡正在下蛋");
}
}
class Fish extends Animal implements Swim {
Fish(String name, int age, String color) {
super(name, age, color);
}
@Override
void eat() {
System.out.println("鱼正在进食");
}
@Override
public void swim() {
System.out.println("鱼正在游泳");
}
}
public class SwimTest {
public static void main(String[] args) {
Dog dog = new Dog("旺财", 3, "黄色");
Chick chick = new Chick("小鸡", 1, "白色");
Fish fish = new Fish("小鱼", 2, "红色");
dog.drink();
dog.eat();
dog.lookHome();
dog.swim();
chick.drink();
chick.eat();
chick.layEggs();
fish.drink();
fish.eat();
fish.swim();
}
}
```
在上述代码中,定义了一个抽象类`Animal`,包含了`name`、`age`、`color`属性以及构造方法、`drink()`方法和抽象方法`eat()`。接口`Swim`定义了一个`swim()`方法。
`Dog`类继承自`Animal`类,并实现了`Swim`接口,重写了`eat()`方法和`swim()`方法,并新增了`lookHome()`方法。
`Chick`类继承自`Animal`类,重写了`eat()`方法,并新增了`layEggs()`方法。
`Fish`类继承自`Animal`类,并实现了`Swim`接口,重写了`eat()`方法和`swim()`方法。
在`SwimTest`类中,创建了一个`Dog`对象、一个`Chick`对象和一个`Fish`对象,并进行了测试,调用了它们的各种方法。
阅读全文