(1)定义animal为抽象类, 该类拥有:size(float型), breed(String型)两个实例变量和eat(),roam(),makenoise()三个方法。 (2)定义pet接口包括feed()和play()两个抽象方法。 (3)定义dog类拥有两个构造方法dog(),dog(float s),带参构造方法将形参s传给size。同时,类dog继承父类animal,并扩展接口pet,实现所有抽象方法。 (4)编写驱动程序dogTest测试dog类,使用带参构造方法创建一个dog对象,调用所有方法(共5个),调用方法时输出的信息为“对象名称(自定义)+正在+方法名(如:play)”,最后输出dog对象的size。用java
时间: 2024-02-15 10:01:31 浏览: 60
下面是实现上述要求的Java代码:
```java
// 定义抽象类Animal
abstract class Animal {
float size;
String breed;
public abstract void eat();
public abstract void roam();
public abstract void makenoise();
}
// 定义接口Pet
interface Pet {
void feed();
void play();
}
// 定义Dog类实现Animal和Pet
class Dog extends Animal implements Pet {
public Dog() {
super();
}
public Dog(float s) {
super();
size = s;
}
@Override
public void eat() {
System.out.println("Dog is eating");
}
@Override
public void roam() {
System.out.println("Dog is roaming");
}
@Override
public void makenoise() {
System.out.println("Dog is making noise");
}
@Override
public void feed() {
System.out.println("Dog is being fed");
}
@Override
public void play() {
System.out.println("Dog is playing");
}
}
// 驱动程序DogTest测试Dog类
public class DogTest {
public static void main(String[] args) {
Dog myDog = new Dog(3.5f);
myDog.eat();
myDog.roam();
myDog.makenoise();
myDog.feed();
myDog.play();
System.out.println("My dog's size is " + myDog.size);
}
}
```
输出结果为:
```
Dog is eating
Dog is roaming
Dog is making noise
Dog is being fed
Dog is playing
My dog's size is 3.5
```
在这个程序中,我们定义了一个抽象类Animal,其中包含了size和breed两个实例变量以及eat、roam、makenoise三个抽象方法。然后我们定义了一个接口Pet,其中包含了feed和play两个抽象方法。最后我们定义了一个Dog类,它继承了Animal类并实现了Pet接口,同时还有一个带参构造方法用于初始化size。最后我们编写了一个驱动程序DogTest,创建了一个Dog对象并调用了所有的方法,输出了size的值。
阅读全文