Java多态、抽象类练习

本文介绍了一个使用Java编程语言实现的动物声音模拟器。通过继承和多态的概念,创建了Animal基类及Cat、Dog、Sheep子类,每个子类重写了叫声方法,展示不同动物的声音。测试类随机生成并输出三种动物的叫声。
摘要由CSDN通过智能技术生成

选择

// 1、C
// 2、C
// 3、A
// 4、C
// 5、A
// 6、B
// 7、D
// 8、AD
// 9、B

编程

  1. 应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),
    它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫 声 这个方法。
    程序参考运行效果如图所示:
    在这里插入图片描述
    任务分析:

    1. 定义一个父类Animal类
    属性:kind(种类)
    方法:创建带参(kind为参数)构造方法
    创建cry():void方法

    2. 编写三个具体的子类Cat类、Dog类、Sheep类
    分别重写父类中的 cry() 方法,输出信息分别为
    Cat类:小猫的叫声:喵喵喵~~~
    Dog类:小狗的叫声:汪汪汪~~~
    Sheep类:小羊的叫声:咩咩咩~~~

    3. 编写测试类,首先生成长度为5的父类对象数组,然后通过循环依次向数组中存入数据,现
    设定存储规则为:

    a) 每次随机产生一个0~2的正整数
    b) 若数值为 0,则生成一个 Cat 类的对象,存入数组
    c) 若数值为 1,则生成一个 Dog 类的对象,存入数组
    d) 若数值为 2,则生成一个 Sheep 类的对象,存入数组
    最后循环输出数组成员,并分别调用 cry() 方法。

package java0421;

/**
 * 父类-Animal类
 * @author Clearlove7
 *
 */
public class Animal {
	
	private String kind; // 种类

	public String getKind() {
		return kind;
	}

	public void setKind(String kind) {
		this.kind = kind;
	}

	public Animal(String kind) {
		super();
		this.kind = kind;
	}

	public Animal() {
		super();
	}
	
	public void cry() {
		
	}
}

package java0421;

/**
 * Cat类
 * @author Clearlove7
 *
 */
public class Cat extends Animal {
 
	@Override
	public void cry() {
		System.out.println("小猫的叫声:喵喵喵~~~");
	}
}

package java0421;

/**
 * Dog类
 * @author Clearlove7
 *
 */
public class Dog extends Animal {
	
	@Override
	public void cry() {
		System.out.println("小狗的叫声:汪汪汪~~~");
	}
}

package java0421;

/**
 * Sheep类
 * @author Clearlove7
 *
 */
public class Sheep extends Animal {
	
	@Override
	public void cry() {
		System.out.println("小羊的叫声:咩咩咩~~~");
	}
}

package java0421;

/**
 * 测试类
 * @author Clearlove7
 *
 */
public class Test {
	public static void main(String[] args) {
		Animal[] arr = new Animal[5];
		for(int i = 0; i < arr.length; i++) {
			int a = (int)(Math.random()*3);
			if( a == 0) {
				Cat cat = new Cat();
				arr[i] = cat;
				cat.cry();
			} else if (a == 1) {
				Dog dog = new Dog();
				arr[i] = dog;
				dog.cry();
			} else if (a == 2) {
				Sheep sheep = new Sheep();
				arr[i] = sheep;
				sheep.cry();
				
				/*小羊的叫声:咩咩咩~~~
				小羊的叫声:咩咩咩~~~
				小狗的叫声:汪汪汪~~~
				小猫的叫声:喵喵喵~~~
				小羊的叫声:咩咩咩~~~*/
			}
		}
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值