应⽤继承和多态的思想,编写动物类,成员⽅法是动物叫声。写三个具体的类(猫、 狗、⽺),它们都是动物类的⼦类,并重写⽗类的成员⽅法。编写测试类,随机产⽣三 种具体动物,调⽤叫声这个⽅法。

本文主要是介绍应⽤继承和多态的思想,编写动物类,成员⽅法是动物叫声。写三个具体的类(猫、 狗、⽺),它们都是动物类的⼦类,并重写⽗类的成员⽅法。编写测试类,随机产⽣三 种具体动物,调⽤叫声这个⽅法。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、任务分析

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()    ⽅法。

二、实现代码

1.Animal.java

public class Animal {
private String king;

public Animal() {
    
}
public Animal(String king) {
    super();
    this.king = king;
}
public String getKing() {
    return king;
}
public void setKing(String king) {
    this.king = king;
}
public void cry() {
    
}
}

2.Cat.java

public class Cat extends Animal{
public void cry() {
    System.out.println("小猫的叫声:喵喵喵~~~");
}
}


3.Dog.java

public class Dog extends Animal{
public void cry() {
    System.out.println("小狗的叫声:汪汪汪~~~~");
}
}
4.Sheep.java

public class Sheep extends Animal {
public void cry() {
    System.out.println("小羊的叫声:咩咩咩");
}
}


5.Test3.java

public class Test3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Animal[] temp = new Animal[5];

        // do-while只要符合while的条件do就会一直执行
        // 循环方案1
        for(int i=0;i<5;i++) {
            int j;
         do {
                 j = (int) (Math.random() * 3);
                System.out.print(j);
            } while (j>2&j<0);
         if (j == 0) {
                temp[i] = new Cat();
            } else if (j == 1) {
                temp[i] = new Dog();
            } else if (j == 2) {
                temp[i] = new Sheep();
            }
        }
        // 循环方案2
//        int i = 4;
//        while (i >= 0) {
//            int j = (int) (Math.random() * 3);
//            if (j == 0) {
//                temp[i] = new Cat();
//            } else if (j == 1) {
//                temp[i] = new Dog();
//            } else if (j == 2) {
//                temp[i] = new Sheep();
//            }
//            i--;
//            System.out.println(j + " ");
//
//        }

        for (int a = 0; a < 5; a++) {
            System.out.println(temp[a]);
            temp[a].cry();
        }

    }

}


6.运行图片

这篇关于应⽤继承和多态的思想,编写动物类,成员⽅法是动物叫声。写三个具体的类(猫、 狗、⽺),它们都是动物类的⼦类,并重写⽗类的成员⽅法。编写测试类,随机产⽣三 种具体动物,调⽤叫声这个⽅法。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/658074

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采