首先定义一个抽象类Animal,抽象类中定义一个抽象方法play()抽象方法 创建 一个猫Cat类,继承Animal并重写play方法输出“我是猫,我玩毛线”, 猫类中特有 zhua()的方法 输出“抓老鼠” 创建一个狗类, 继承Animal并重写play方法输出“我是狗,我玩球”。 狗类中有的方法lookDoor() 输出“看门” 最后编写测试类Test,通过多态创建猫,通过多态创建狗,并调用猫和狗的play方法以 及也有方法 最终输出的效果是: 我是猫,我玩老鼠 抓老鼠 我是狗,我玩球 看门
时间: 2024-04-17 14:24:13 浏览: 90
您可以按照以下代码实现所需的功能:
```java
// 定义抽象类 Animal
abstract class Animal {
// 定义抽象方法 play
abstract void play();
}
// 创建猫类 Cat,继承 Animal 并重写 play 方法
class Cat extends Animal {
@Override
void play() {
System.out.println("我是猫,我玩毛线");
}
// 猫类特有的方法 zhua
void zhua() {
System.out.println("抓老鼠");***
相关问题
(1) 定义一个抽象类Animal,包含一个抽象方法eat0)(2) 定义三个具体的动物类: Bird、Fish、Cat,它们都继承Animal类,并实现eat0)方法。(3) 定义一个接口IPet,包含两个方法: play0和getName0)
好的,以下是根据你的要求定义的抽象类、具体动物类和接口的示例代码:
```java
// 定义抽象类 Animal
public abstract class Animal {
// 定义抽象方法 eat0
public abstract void eat0();
}
// 定义具体动物类 Bird
public class Bird extends Animal {
// 实现 eat0 方法
@Override
public void eat0() {
System.out.println("Bird is eating.");
}
}
// 定义具体动物类 Fish
public class Fish extends Animal {
// 实现 eat0 方法
@Override
public void eat0() {
System.out.println("Fish is eating.");
}
}
// 定义具体动物类 Cat
public class Cat extends Animal {
// 实现 eat0 方法
@Override
public void eat0() {
System.out.println("Cat is eating.");
}
}
// 定义接口 IPet
public interface IPet {
// 定义方法 play0
void play0();
// 定义方法 getName0
String getName0();
}
```
需要注意的是,抽象类 Animal 中包含一个抽象方法 eat0,需要在具体的动物类中实现。接口 IPet 中包含两个方法 play0 和 getName0,需要在实现接口的类中实现这两个方法。
1.多态的实现 (1)定义一个抽象类Animal,包含一个抽象方法eat0。 (2)定义三个具体的动物类:Bird、 Fish、 Cat,它们都继承Animal类,并实现eat0方法。 (3)定义一个接口Iet,包含两个方法:play0和 getName.
(4)在每个具体动物类中实现Iet接口,并重写play0方法和getName方法,实现多态。这样在程序运行时,可以根据具体对象的类型调用对应的方法。
示例代码如下:
```java
//定义抽象类Animal
public abstract class Animal {
public abstract void eat0();
}
//定义具体动物类Bird
public class Bird extends Animal implements Iet {
@Override
public void eat0() {
System.out.println("鸟吃虫子");
}
@Override
public void play0() {
System.out.println("鸟在飞");
}
@Override
public String getName() {
return "鸟";
}
}
//定义具体动物类Fish
public class Fish extends Animal implements Iet {
@Override
public void eat0() {
System.out.println("鱼吃小虾");
}
@Override
public void play0() {
System.out.println("鱼在游泳");
}
@Override
public String getName() {
return "鱼";
}
}
//定义具体动物类Cat
public class Cat extends Animal implements Iet {
@Override
public void eat0() {
System.out.println("猫吃鱼");
}
@Override
public void play0() {
System.out.println("猫在玩毛线球");
}
@Override
public String getName() {
return "猫";
}
}
//定义接口Iet
public interface Iet {
void play0();
String getName();
}
//测试类
public class Test {
public static void main(String[] args) {
Animal bird = new Bird();
Animal fish = new Fish();
Animal cat = new Cat();
bird.eat0();
((Iet) bird).play0();
System.out.println(((Iet) bird).getName());
fish.eat0();
((Iet) fish).play0();
System.out.println(((Iet) fish).getName());
cat.eat0();
((Iet) cat).play0();
System.out.println(((Iet) cat).getName());
}
}
```
输出结果为:
```
鸟吃虫子
鸟在飞
鸟
鱼吃小虾
鱼在游泳
鱼
猫吃鱼
猫在玩毛线球
猫
```
阅读全文