请写一段Java代码,各有一个子类继承父类(鸟类、昆虫类)实现接口,第一个类是鸟,腿有两只,会飞会下蛋,鸽子和大雁继承第一个类;第二个类是昆虫,腿有六只,会飞会产卵,蚂蚁和蜜蜂继承这个类,最后输出结果为,蜜蜂会飞,蜜蜂会产卵,蜜蜂有6只腿;鸽子会飞,鸽子会下蛋,鸽子有2条腿
时间: 2024-09-24 17:09:44 浏览: 47
java子类继承父类实例-披萨的选择实现代码
在Java中,我们可以创建一个名为`Avain`的父类表示鸟类,包含飞行能力和下蛋的能力,然后创建两个子类`Pigeon`和`Swan`分别代表鸽子和大雁。同时,我们可以创建一个名为`Insect`的父类表示昆虫,同样具备飞行和产卵能力,再有两个子类`Ant`和`Bee`,其中`Bee`既继承自`Insect`又实现一个`Flier`接口来强调其飞行特性。以下是相关的代码:
```java
// 定义接口 Flier 表示能飞
interface Flier {
default void fly() {
System.out.println("This insect can fly.");
}
}
// 鸟类类 Avain
class Avain {
private int legs;
// 模拟下蛋的行为
abstract void layEgg();
// 显示腿部数量
public String showLegs() {
return "This bird has " + legs + " legs.";
}
// 定义飞翔行为
void fly() {
System.out.println("The bird can fly.");
}
}
// 子类 Pigeon 和 Swan
class Pigeon extends Avain {
Pigeon() {
this.legs = 2;
}
@Override
void layEgg() {
System.out.println("Pigeon can lay eggs.");
}
}
class Swan extends Avain {
Swan() {
this.legs = 2;
}
// 无特别行为,仅覆盖默认fly方法
@Override
void fly() {
super.fly();
}
}
// 昆虫类 Insect
class Insect extends Avain implements Flier {
private int legs;
Insect() {
this.legs = 6;
}
// 昆虫的产卵行为
@Override
void layEgg() {
System.out.println("This insect can produce offspring.");
}
}
// 子类 Ant 和 Bee
class Ant extends Insect {
Ant() {
this.legs = 6;
}
}
class Bee extends Insect {
Bee() {
this.legs = 6;
}
@Override
void fly() {
super.fly();
}
}
public class Main {
public static void main(String[] args) {
Bee bee = new Bee();
bee.fly(); // 输出: This insect can fly.
bee.layEgg(); // 输出: This insect can produce offspring.
System.out.println(bee.showLegs()); // 输出: This insect has 6 legs.
Pigeon pigeon = new Pigeon();
pigeon.fly(); // 输出: The bird can fly.
pigeon.layEgg(); // 输出: Pigeon can lay eggs.
System.out.println(pigeon.showLegs()); // 输出: This bird has 2 legs.
}
}
```
阅读全文