多态的前提--java进阶day02

news/2025/2/24 22:03:33/文章来源:https://www.cnblogs.com/zhishi6/p/18735059

1.多态的前提条件

第一点和第二点都很好理解,第三点父类引用指向子类对象是什么意思?以下图进行讲解

我们以前的写法,如下图,叫做子类引用指向子类

那父类引用呢?就是把左边换成父类Animal即可

因为dog和cat都是Animal的子类,所以二者皆可用该种引用方式

并不是所有的对象都可以左右两边类型不一致来创建 如下图

因为dog不是cat的父类,不是父类引用指向子类对象,就不能用多态的方式来创建对象,要想两边类型不一致,左边就必须是父类,右边是子类

2.多态的两种现象

1.对象多态

像上图这种创建对象的方式,我们称为对象多态

对象多态的好处在于形参,如果一个方法中形参是父类,那么我们在调用该方法时,括号里面就可以放入任意的子类

实参给形参赋值,就相当于普通的变量赋值

这样我们就可以通过一个父类使用到很多的子类,大大减少了代码的臃肿

对象多态,直接创建对象的意义不大,主要好处体现在调用方法传参

2.行为多态

可以根据父类引用的是哪个子类,而调用子类中的方法

这里先让Animal接收dog对象,这时eat()就会打印dog类的方法。Animal接收cat对象,打印的也就是猫吃鱼



虽然都是eat()方法,但是Animal接收的对象不同,方法展现的形式也不同

虽然清楚了多态的特点,但是为什么会有这些现象,下个知识点进行讲解

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行内块应用

这是做的作业<!DOCTYPE html> <html lang="zh-cn"> <head><meta charset="UTF-8"><title>Title</title><style>.pics {width: 1850px;height: 700px;display: flex;justify-content: center; /* 水平居中 */ali…

基于NURBS曲线的数据拟合算法matlab仿真

1.程序功能描述 基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS)曲线是一种强大的数学工具,广泛应用于计算机图形学、CAD/CAM系统、几何建模和数据拟合等领域。NURBS曲线通过控制顶点和权重,能够精确地表示复杂的曲线和曲面…

基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器

1.课题概述 基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器。2.系统仿真结果 (完整程序运行后无水印) 3.核心程序与模型 版本:MATLAB2022a 4.系统原理简介PEM(质子交换膜)燃料电池作为一种高效的能量转换装置,在众多领域中展现出广泛的应…

4、二次创作

将文件拖入软件中 添加标题 设置参数 使用空格遮挡字幕 加水印 导入已经识别的字幕 修改字幕参数

【攻防世界】流量分析2

学到一个流量追踪的快捷操作可以快捷查看不同流的信息 还有找到了一款快捷分析工具

多态的引入--java进阶day02

1.多态的介绍我们以之前说的公司写业务为例子来理解多态,假设公司现在又要管理国外的业务,此时我们就需要重写一份关于国外的方案 从该业务上,也能看出接口的好处,我们直接写一个国外类实现接口,再按照规则重写方法即可,方便快捷接下来我们就简单写个菜单,用于判断是要国…

spring官宣接入deepseek,真的太香了~

写在前面 经常逛Spring官网(https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html)的小伙伴会发现, Spring 已经支持接入DeepSeek了。DeepSeek AI provides the open-source DeepSeek V3 model, renowned for its cutting-edge reasoning and problem-s…

离线环境安装nodejs及npm库i5ting_toc(超详细,手把手教学一通百通)

一、离线环境先安装nodejs 1、在可联网的电脑上下载特定版本的 Node.js:访问 Node.js 官方下载页面(https://nodejs.org/download/release/)。 选择您需要的版本,下载适合您服务器操作系统的二进制文件(通常是 tar.gz 或 zip 2、将下载的文件传输到服务器上。用文件传输…

P2085 最小函数值——小顶堆、贪心、重载运算符

题目描述 有 \(n\) 个函数,分别为 \(F_1,F_2,\dots,F_n\)。定义 \(F_i(x)=A_ix^2+B_ix+C_i(x\in\mathbb N*)\)。给定这些 \(A_i\)、\(B_i\) 和 \(C_i\),请求出所有函数的所有函数值中最小的 \(m\) 个(如有重复的要输出多个)。 输入格式 第一行输入两个正整数 \(n\) 和 \(m\…

Chapter1

Chapter 1 Introduction 引言数据库管理系统(DataBase Management System, DBMS) 互相关联的数据集合和一组用以访问这些数据的程序组成。 提供方便,高效的存取数据信息。1.1 应用联机事务处理。(online transaction processing)大量用户使用数据库,每个用户检索相对少量的数…