2021-11-18 JAVA上机实验之抽象类、接口、列表

题目如下:

1、定义抽象类Animal,定义两个行为吃eat()和移动move();

2、通过继承实现类猫Cat、类狗Dog、类鸟Bird、猎鹰Falcon;

2.1 eat():猫输出“吃鱼。”,狗输出“吃骨头。”,鸟输出“吃虫子。 ”,猎鹰输出“吃蛇。”

2.2 move():猫输出“跳。”, 狗输出“跑。”, 鸟输出“飞。”, 猎鹰输出“飞很高”

3、定义IPet接口,定义行为Play();

4、实现类PetDog, PetCat, PetRobot;

4.1 Play的行为PetDog输出“叼飞盘”,PetCat,输出“撸撸猫”,PetRobot, 输出“编程玩吧”

4.2为类PetDog, PetCat添加名 字属性Name,以及get name和set name方法

5、生成测试类Stage, 在测试类中生成3只狗,2只猫,1只猎鹰, 1只鸟,1只宠物狗,1只宠物猫,1只机器宠物;

5.1为宠物猫和宠物狗取名

5.2生成动物列表,让所有动物吃东西eat(),移动move()

5.3生成宠物列表,让所有宠物玩play(),输出中加入宠物名字

代码如下:

import java.util.*;
abstract class Animal{
	public abstract void eat();
	public abstract void move();
}
class Cat extends Animal{
	public void eat(){
		System.out.println("吃鱼");
	}
	public void move() {
		System.out.println("跳");
	}
}
class Dog extends Animal{
	public void eat(){
		System.out.println("吃骨头");
	}
	public void move() {
		System.out.println("跑");
	}
}
class Bird extends Animal{
	public void eat(){
		System.out.println("吃虫子");
	}
	public void move() {
		System.out.println("飞");
	}
}

class Falcon extends Animal{
	public void eat(){
		System.out.println("吃蛇");
	}
	public void move() {
		System.out.println("飞很高");
	}
}

interface IPet{
	public void Play();
}

class PetCat extends Cat implements IPet{
	private String Name;
	public String get_name() {
		return Name;
	}
	void set_name(String name) {
		Name=name;
	}
	public void Play() {
		System.out.println("撸撸猫");
	}
}
class PetDog extends Dog implements IPet{
	private String Name;
	public String get_name() {
		return Name;
	}
	void set_name(String name) {
		Name=name;
	}
	public void Play() {
		System.out.println("叼飞盘");
	}
}
class PetRobot implements IPet{
	private String Name;
	PetRobot(String name){
		Name=name;
	}
	public String get_name() {
		return Name;
	}
	void set_name(String name) {
		Name=name;
	}
	public void Play() {
		System.out.println("编程玩吧");
	}
}

public class Stage {
	public static void main(String a[]) {
		List<Animal>animalList=new ArrayList<Animal>();
		for(int i=0;i<3;i++) {
			animalList.add(new Dog());
		}
		for(int i=0;i<2;i++) {
			animalList.add(new Cat());
		}
		animalList.add(new Bird());
		animalList.add(new Falcon());
		PetDog petdog=new PetDog();
		PetCat petcat=new PetCat();
		PetRobot petrobot=new PetRobot("机器宠物");
		petdog.set_name("旺财");
		petcat.set_name("坚果");
		animalList.add(petdog);
		animalList.add(petcat);
		
		List<IPet>petList=new ArrayList<IPet>();
		petList.add(petdog);
		petList.add(petcat);
		for(Animal e:animalList) {
			e.eat();
			e.move();
		}
		System.out.println(petdog.get_name());
		petdog.Play();
		System.out.println(petcat.get_name());
		petcat.Play();
		System.out.println(petrobot.get_name());
		petrobot.Play();
	}
}

运行效果如下:

本次记录就到这。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值