首页 > 编程语言 >Java练习(综合运用继承性、多态性、接口)

Java练习(综合运用继承性、多态性、接口)

时间:2024-05-31 22:00:28浏览次数:16  
标签:sound Java 多态性 void Animal mammals Mammal 继承性 public

在这个练习中,我们定义了一个接口`Animal`,其中包含一个方法`sound()`。

之后,我们创建了一个基类`Mammal`,实现了`Animal`接口,并提供了一个默认的`sound()`方法实现。

接着,我们定义了两个继承自`Mammal`的子类`Dog`和`Cat`,分别重写了`sound()`方法。

在`main`方法中,我们创建了一个`Mammal`类型的数组,用于存储不同的哺乳动物对象。

我们将`Mammal`、`Dog`和`Cat`的实例分别存储在数组中。

然后,我们遍历数组,调用每个对象的`sound()`方法。由于多态性的存在,当我们调用`Mammal`类型的对象的`sound()`方法时,实际执行的是该对象所属子类的`sound()`方法。

这样,我们可以实现展示不同的哺乳动物发出的声音。

// 定义一个接口Animal,包含一个方法sound()
interface Animal {
    void sound();
}

// 定义一个基类Mammal,实现Animal接口
class Mammal implements Animal {
    @Override
    public void sound() {
        System.out.println("The mammal makes a generic sound.");
    }
}

// 定义一个Dog类,继承自Mammal类
class Dog extends Mammal {
    @Override
    public void sound() {
        System.out.println("The dog barks.");
    }
}

// 定义一个Cat类,继承自Mammal类
class Cat extends Mammal {
    @Override
    public void sound() {
        System.out.println("The cat meows.");
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建一个Mammal类型的数组,用于存储不同的哺乳动物对象
        Mammal[] mammals = new Mammal[3];
        mammals[0] = new Mammal();
        mammals[1] = new Dog();
        mammals[2] = new Cat();

        // 遍历数组,调用每个对象的sound()方法,展示多态性
        for (Mammal mammal : mammals) {
            mammal.sound();
        }
    }
}

标签:sound,Java,多态性,void,Animal,mammals,Mammal,继承性,public
From: https://blog.csdn.net/2301_79600015/article/details/139362148

相关文章

  • java期末练习题,设计一个学生类,包括公开的学号、私有的成绩及其题目所要求的条件进行打
    (1)Student类中包含公开的学号、私有的成绩两个属性;(2)分别给这两个属性分别定义设置值与获取值的方法;1)在学号设置方法中,如果学号长度大于12位,提示用户并截取前12位。2)在分数设置方法中,如果分数不在0-100范围内,提示用户并默认60分。(3)Student类中定义一个无参的......
  • 【自定义线程池】超详细!一文轻松理解JDK线程池 - java
    【自定义线程池】超详细!一文轻松理解JDK线程池-java通过手敲一遍自定义线程池代码,轻松理解jdk中线程池的原理,可以放心告诉面试官研究过jdk线程池源码!本文参考b站黑马程序员满一航老师的JUC课程p200-208https://www.bilibili.com/video/BV16J411h7Rd?p=207&vd_sour......
  • Java中常用的几个时间类
    一、Date类    Date类,代表日期,注意:这里的类是java.util.Date的日期类,不要导错包了(Alt+Enter自动导包)//创建当前时间Datenow=newDate();System.out.println("now="+now);//以指定毫秒值创建时间Datethat=newDate(1);System.out.println("that=......
  • java期末练习题,设计教师类,完成教授,副教授,讲师三个类的定义,在完成相应的测试。
        教授的基本工资为5000元,每学时补贴70元;     副教授的基本工资为3500元,每学时补贴60元;     讲师的基本工资2600元,每学时补贴55元。     已知每个教师的学时数,计算每个教师的每月工资数。输入1对应教授。输入2对应副教......
  • 【备战蓝桥杯】蓝桥杯省一笔记:算法模板笔记(Java)
    蓝桥杯0、快读快写模板1、回文判定2、前缀和3、差分4、二分查找5、快速幂6、判断素数7、gcd&lcm8、进制转换9、位运算10、字符串常用API11、n的所有质因子12、n的质因子个数13、n的约数个数14、n阶乘的约数个数15、n的约数和16、阶乘&双阶乘17、自定义升序降序18、动态......
  • java.lang.UnsatisfiedLinkError: no taos in java.library.path, TDengine 访问数
     TDengine linux部署连接驱动问题: java.lang.UnsatisfiedLinkError:notaosinjava.library.path解决方案有有两种:方法一:使用原生的连接需要安装客户端,docker应用的话需要安装tdengine客户端到相应应用容器里面:windows端的需要安装tdengine客户端注意使用driver驱动......
  • java检测字符串是否包含数字和字母
    在Java中,要检测一个字符串是否同时包含数字和字母,我们可以使用正则表达式(regex)或者通过遍历字符串并检查每个字符来实现。以下是两种方法的详细代码示例:1.方法一:使用正则表达式importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassStringChec......
  • Java的JDBC编程
     博主主页: 码农派大星.  数据结构专栏:Java数据结构 数据库专栏:MySQL数据库关注博主带你了解更多数据结构知识1.Java的数据库编程:JDBC数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需......
  • java多态——向下转型
    引入前面我尝试了一下这个代码packageb;publicclassmain_{ publicstaticvoidmain(String[]args){ //向上转型,父类的引用转向了子类的 father_animal=newgraduate(); Objectobj=newgraduate(); System.out.println(animal.name); System.out.print......
  • JavaScript语法(二):你知道哪些JavaScript语句?
    我们在上一节课中已经讲过了JavaScript语法的顶层设计,接下来我们进入到更具体的内容。JavaScript遵循了一般编程语言的“语句-表达式”结构,多数编程语言都是这样设计的。我们在上节课讲的脚本,或者模块都是由语句列表构成的,这一节,我们就来一起了解一下语句。在JavaScrip......