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

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

一、任务分析

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

相关文章

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

C# 预处理指令(# 指令)的具体使用

《C#预处理指令(#指令)的具体使用》本文主要介绍了C#预处理指令(#指令)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1、预处理指令的本质2、条件编译指令2.1 #define 和 #undef2.2 #if, #el

Python海象运算符:=的具体实现

《Python海象运算符:=的具体实现》海象运算符又称​​赋值表达式,Python3.8后可用,其核心设计是在表达式内部完成变量赋值并返回该值,从而简化代码逻辑,下面就来详细的介绍一下如何使用,感兴趣... 目录简介​​条件判断优化循环控制简化​推导式高效计算​正则匹配与数据提取​性能对比简介海象运算符

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E

Java Exception异常类的继承体系详解

《JavaException异常类的继承体系详解》Java中的异常处理机制分为异常(Exception)和错误(Error)两大类,异常分为编译时异常(CheckedException)和运行时异常... 目录1. 异常类的继承体系2. Error错误3. Exception异常3.1 编译时异常: Che

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

gitlab项目实现添加新成员

《gitlab项目实现添加新成员》:本文主要介绍gitlab项目实现添加新成员方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录gitlabhttp://www.chinasem.cn项目添加新成员1、进入项目2、手动输入要添加成员的账号或者搜索总结gitlab项

Java中接口和抽象类的异同以及具体的使用场景

《Java中接口和抽象类的异同以及具体的使用场景》文章主要介绍了Java中接口(Interface)和抽象类(AbstractClass)的区别和联系,包括相同点和不同点,以及它们在实际开发中的具体使... 目录一、接口和抽象类的 “相同点”二、接口和抽象类的 “核心区别”关键区别详解(避免踩坑)三、具体使

java中的DDD思想指的是什么及在Java中的体现详解

《java中的DDD思想指的是什么及在Java中的体现详解》领域驱动设计(简称DDD)是一种软件开发方法,旨在通过对业务领域的深入理解,构建高内聚、低耦合的系统,:本文主要介绍java中的DDD思... 目录前言什么是 DDD(Domain-Driven Design)?核心思想:DDD 的三大核心概念DD

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4