(1)请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。 (2)创建一个接口A,接口里有一个抽象方法fly()。 (3)创建一个Bird类定义名字name属性,并新建给name属性赋值的构造方法,继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。 (4)在Test类中向上转型创建Bird对象,调用eat方法。然后向下转型调用eat()方法、fly()方法。 (5)创建ArrayList集合存5个Bird类的对象,并使用迭代器和foreach循环输出5个Bird对象的名字信息。
时间: 2023-12-29 22:06:05 浏览: 150
代码如下:
```
// Animal类
class Animal {
public void eat() {
System.out.println("吃东西");
}
}
// 接口A
interface A {
void fly();
}
// Bird类
class Bird extends Animal implements A {
private String name;
public Bird(String name) {
this.name = name;
}
@Override
public void fly() {
System.out.println("鸟儿飞翔");
}
@Override
public void eat() {
System.out.println("鸟儿吃虫");
}
}
// Test类
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
// 向上转型创建Bird对象,调用eat方法
Animal animal = new Bird("小鸟");
animal.eat();
// 向下转型调用eat()方法,fly()方法
Bird bird = (Bird) animal;
bird.eat();
bird.fly();
// 创建ArrayList集合存5个Bird类的对象
ArrayList<Bird> list = new ArrayList<>();
list.add(new Bird("喜鹊"));
list.add(new Bird("麻雀"));
list.add(new Bird("乌鸦"));
list.add(new Bird("黄鹂"));
list.add(new Bird("鸽子"));
// 使用迭代器输出5个Bird对象的名字信息
Iterator<Bird> it = list.iterator();
while (it.hasNext()) {
Bird b = it.next();
System.out.println(b.name);
}
// 使用foreach循环输出5个Bird对象的名字信息
for (Bird b : list) {
System.out.println(b.name);
}
}
}
```
阅读全文