首页 > 其他分享 >面向对象---多态

面向对象---多态

时间:2023-12-12 16:04:55浏览次数:24  
标签:makeSound SoundMaker void 多态 Dog --- 面向对象 Cat public

多态就是同一个接口,使用不同的实例而执行不同操作

多态性(Polymorphism)是面向对象编程的一个重要概念

// 接口
interface SoundMaker {
    void makeSound();
}

// 实现接口的基类
class Animal implements SoundMaker {
    @Override
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

// 实现接口的派生类
class Dog implements SoundMaker {
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }
}

class Cat implements SoundMaker {
    @Override
    public void makeSound() {
        System.out.println("Cat meows");
    }
}


public class Main {
    public static void main(String[] args) {
        // 使用接口类型的引用指向实现类的对象
        SoundMaker myDog = new Dog();
        SoundMaker myCat = new Cat();

        // 调用 makeSound 方法
        myDog.makeSound(); // 运行时调用 Dog 类的 makeSound 方法
        myCat.makeSound(); // 运行时调用 Cat 类的 makeSound 方法
    }
}

  

标签:makeSound,SoundMaker,void,多态,Dog,---,面向对象,Cat,public
From: https://www.cnblogs.com/mxleader/p/17897071.html

相关文章

  • [-007-]-Python3+Unittest+Selenium Web UI自动化测试之@property装饰器默认值设置
    看示例:#!/usr/bin/python3#coding:utf-8__author__='csjin'#定义@property装饰器classPPTListModels(object):def__init__(self):self._tab_name="PPT模板"@propertydefhandle(self):returnself.__handle......
  • 从根上理解elasticsearch(lucene)查询原理(2)-lucene常见查询类型原理分析
    大家好,我是蓝胖子,在上一节我提到要想彻底搞懂elasticsearch慢查询的原因,必须搞懂lucene的查询原理,所以在上一节我分析了lucene查询的整体流程,除此以外,还必须要搞懂各种查询类型内部是如何工作,比如比较复杂的查询是将一个大查询分解成了小查询,然后通过对小查询的结果进行合并得到......
  • 零基础30天学会Java-韩顺平
    第一章概述了解了该视频课程的大纲和Java的基本知识,Java1995年推出,目前稳定维护的有Java8和Java11版本。JVM(Java虚拟机):JVM包含于JDK中,Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行"JRE(Java运行环境):JRE=JVM+Java的核心类库。JDK(Java开发工具包):JDK=JRE+Jav......
  • 鸿蒙开发 DevEco Studio 工具常用快捷键--备用
    做HarmonyOS鸿蒙开发离不开DevEcoStudio开发工具,DevEcoStudio是基于IntelliJIDEACommunity开源版本打造,所以默认的快捷键其实继承于IntelliJIDEA。熟悉DevEcoStudio的快捷键能提升开发效率和开发体验。作者:黑马pink讲前端https://www.bilibili.com/read/cv28......
  • drf实战和源码剖析----学习笔记1
     学自:bilibili武沛齐老师.武老师讲课:清晰,连贯,实用,透彻,真乃名师!#1.什么是前后端分离-不分离,主要用于后台系统(CRUD)和用户量上的情况,开发起来代价小-分离,面向用户,大量,几十万-根据实际情况#2.什么是drf?作用是什么?#3.必备工具:postman做为后端开发人员,要......
  • element-ui表单校验|标红提示
    elementUI表单校验1.表单上加rules{object}(常用)增加普通校验规则<el-form:model="form":rules="rules"ref="form"><el-form-itemlabel="姓名:":label-width="formLabelWidth"prop="uname"><el-in......
  • 论文精读:STMGCN利用时空多图卷积网络进行移动边缘计算驱动船舶轨迹预测(STMGCN: Mobile
    《STMGCN:MobileEdgeComputing-EmpoweredVesselTrajectoryPredictionUsingSpatio-TemporalMultigraphConvolutionalNetwork》论文链接:https://doi.org/10.1109/TII.2022.3165886摘要利用移动边缘计算MEC范例提出基于时空多图卷积网络(STMGCN)的轨迹预测框。STMGCN由三......
  • 力扣101-对称二叉树
    该题难度为【简单】1.尝试自己写,哪怕写个暴力解法也行,没写出来,看官方题解。2.扫了一眼,不太理解,又想了一会“我代码里漏掉的一半在官方思路中是怎么补上的”,再从头看一遍文字解析,“原来是两棵树对比”。这样思路就清晰了,用递归遍历每个节点,比较每次遍历的“根节点”即可。3.......
  • C++语言string、wstring、utf-8互转
    实现了一个CStrCvt类,采用STL实现,可跨平台。注意的是,在s2ws和ws2s函数中需要locale信息,在使用过程中,需要根据实际情况进行设置。如果有需要可以检测文本编码,网上有开源的第三方库,可供使用。不过,准确率需自己判断。为了不影响效率,此类默认按照中文处理。头文件classCStrCvt{pu......
  • gdb本地调试版本移植至ARM-Linux系统
    移植ncurses库本文使用的ncurses版本为ncurses-5.9.tar.gz下载地址:https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1.       将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvf ncurses-5.9.tar.gz 2.       解压后进入到ncurses-5.9目录......