Java面向对象 多态

目录

  • 多态
  • 多态的好处
  • 实例
    • 创建一个Main

多态

  • 在Java中,多态是面向对象编程的三大基本特性之一,另外两个是封装和继承。多态是指一个接口可以有多种实现方式,或者一个对象可以表现出多种形态。

  • 在Java中,多态主要通过方法重载和重写实现。方法重载是指在同一个类中,方法名相同但参数列表(参数类型、数量、顺序)不同的方法。编译器根据方法参数列表的差异来区分不同的重载方法。方法重写是指在子类中定义一个与父类中方法名、参数列表相同的方法。通过方法重写,子类可以扩展或修改父类方法的实现,从而表现出不同的行为。

多态的好处

  1. 代码重用:通过重写和继承,子类可以复用父类的代码,减少重复的代码量。
  2. 扩展性:通过重写和继承,可以添加新的属性和方法来扩展类的功能,而不会破坏现有的代码。
  3. 更好的组织结构:通过将相关的类组织成层次结构,可以更好地组织和管理代码。

实例

// 定义一个动物类  
class Animal {  
    public void makeSound() {  
        System.out.println("The animal makes a sound");  
    }  
}  
  
// 定义一个狗类,继承自Animal类  
class Dog extends Animal {  
    @Override  
    public void makeSound() {  
        System.out.println("The dog barks");  
    }  
}  
  
// 定义一个猫类,继承自Animal类  
class Cat extends Animal {  
    @Override  
    public void makeSound() {  
        System.out.println("The cat meows");  
    }  
}  
  

创建一个Main

// 定义一个主程序类  
public class Main {  
    public static void main(String[] args) {  
        Animal animal1 = new Dog(); // 创建Dog对象,类型为Animal引用  
        Animal animal2 = new Cat(); // 创建Cat对象,类型为Animal引用  
        Animal animal3 = new Animal(); // 创建Animal对象,类型为Animal引用  
          
        animal1.makeSound(); // 调用Dog类的makeSound方法,输出"The dog barks"  
        animal2.makeSound(); // 调用Cat类的makeSound方法,输出"The cat meows"  
        animal3.makeSound(); // 调用Animal类的makeSound方法,输出"The animal makes a sound"  
    }  
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/380195.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面向对象 方法的重写

目录 重写重写的规则实例创建Person类创建Student类测试 重载和重写的区别 重写 发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行重写。 重写的规则 子类的方法名字和父类必须一致,参数列表(个数&…

【Linux】进程学习(一):基本认识

目录 1.基本概念2.初步理解3.描述进程-PCB3.1task_struct-PCB的一种3.2task_ struct内容分类 4.组织进程5.查看进程5.1通过ps指令查看5.2通过系统目录查看 6.通过系统调用获取进程的PID和PPID7.通过系统调用创建进程-fork初识 1.基本概念 课本概念:程序的一个执行实…

【跳槽须知】关于企业所签订的竞业协议你知道多少?

年后跳槽须知自己签订的合同中是否存在竞业协议,谨防协议造成经济损失 🐓 什么是竞业协议 竞业协议时用于保护自己的权益,在员工离职时决定是否启动的一种协议,避免一些掌握公司机密的一些重要岗位人才流入竞争对手的公司&#xf…

C++ 位图布隆过滤器哈希切割

文章目录 位图概念模拟实现海量数据面试题1 布隆过滤器模拟实现应用场景海量数据面试题2 哈希切割海量数据面试题3 位图 概念 我们用一道题引出此概念: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这…

算法---回溯(正文)

1.什么是回溯? 回溯算法的定义就是和暴力枚举一样枚举所有可能并加撤回,也能和暴力一样去掉一些重复(在之前就被筛出,但还要枚举这个,我们可以跳过这个了---------这个就是回溯剪枝)。但为什么回溯不是暴力…

多线程基础详解(看到就是赚到)

🎥 个人主页:Dikz12📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 创建线程 1.创建类继承Thread,重写run() 2.实现Runnable,重写run() 3.继承Thread,使用匿名内部类 …

版本控制工具——Git

版本控制工具——Git 前言一、版本库二、git的工作区域和文件状态三、添加和提交文件四、回退版本:git reset --模式 版本号五、查看差异:git diff六、从版本库中删除文件七、.gitignore:git中的特殊文件八、Git、GitHub跟Sourcetree的关系九…

基于 Python 的漏洞扫描系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【Python】使用 requirements.txt 与 pytorch 相关配置

【Python】使用 requirements.txt 与 pytorch 相关配置 前言一、pip1、导出结果含有路径2、导出不带路径的 二、Conda1、导出requirements.txt2、导出yml 文件 三、第三方包:pipreqs(推荐)1、创建并激活conda环境2、安装requirements文件的pi…

金融信贷风控评分卡模型

评分卡模型概念 评分模型是根据借款人的历史数据,选取不同维度的数据类型,通过计算而得出的对借款人信用情况打分的模型。不同等级的信用分数代表了借款人信用情况的好坏,以此来分析借款人按时还款的可能性。 评分卡模型分类 A卡&#xff…

揭开Markdown的秘籍:标题|文字样式|列表

🌈个人主页:聆风吟 🔥系列专栏:Markdown指南、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️Markdown 标题二. ⛳️Markdown 文字样式2.1 🔔斜体2.2 &…

Netty连接通道中的Channel参数模型

ChannelOption(Channel中的连接参数) ChannelOption.SOBACKLOG ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,服务端处理客户端连接请求是顺序处理的,所以同一时间只能处理一个客户端连接,多个客户端来的时候&…

代理与Reflect反射

属性描述符 Proprety Descriptor 属性描述符 用于描述一个属性的相关信息 1.Object.getOwnPropertyDescriptor(对象,属性名) 可以得到一个对象的 某个属性的属性描述符 Object.getOwnPropertyDescriptors(对象) 可以得到某个对象的所有属性描述符 如果需要为某个…

node.js基础-02

Author nodes:(题记) Hypertest Transfer protocol is very important to programming personnel。it doesnt matter if youre a front-end engineer or a back-end engineer.So,lets study it together. http协议对于编程工程师很重要&am…

基于华为云欧拉操作系统(HCE OS)单节点容器化部署(Prometheus、node-exporter、Grafana)应用性能监控平台

写在前面 博文内容为 华为云欧拉操作系统入门级开发者认证(HCCDA – Huawei Cloud EulerOS)实验笔记整理认证地址:https://edu.huaweicloud.com/certificationindex/developer/9bf91efb086a448ab4331a2f53a4d3a1内容涉及,HCE OS 容器化部署(Prometheus、…

【C++修行之道】(引用、函数提高)

目录 一、引用 1.1引用的基本使用 1.2 引用注意事项 1.3 引用做函数参数 1.4 引用做函数返回值 1.5 引用的本质 1.6 常量引用 1.7引用和指针的区别 二、函数提高 2.1 函数默认参数 2.2函数占位参数 2.3 函数重载 2.4函数重载注意事项 一、引用 1.1引用的基本使用 …

【canvas】获取鼠标点击位置坐标的颜色信息

在项目当中,要实现某业务需求例如PS魔棒功能时,则需要获取点击坐标的颜色信息。 功能不复杂,代码也很少,一看便知~~ 核心API为getImageData,传入4个参数,前2个为点击坐标xy,后2个都传1&#xf…

那些 C语言指针 你不知道的小秘密 (3)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能…

vscode连接ssh报错

关于vscode更新版本至1.86后,导致无法连接服务器问题的记录 原因:vscode1.86更新了对glibc的要求,需要最低2.28版本,导致各种旧版本的linux发行版(比如最常见的centos 7)都无法用remote-ssh来连接了&#…

Linux探秘之旅:透彻理解路径、命令与系统概念

目录 如何远程连接 远程登录简明指南 linux区别 1.严格区分大小写 2.linux的命令返回结果判断 3.如何查看网络信息 4.关于后缀名(Linux不关心文件后缀) 4.1 需要记忆的后缀 5.echo命令 6.linux一切皆文件 6.1比如磁盘的文件 6.2可执行文件 …