当前位置: 首页 > news >正文

【java】基础——多态

  1. 多态基本知识思维导图
    在这里插入图片描述
  2. 多态的代码实现,注意父类对象引用指向子类对象引用(向上转型)的方法,父类就可以调用子类重写的方法和派生的方法,但不能调用子类特有的方法:
class Animal {public void makeSound() {// 基类方法System.out.println("Animal makes a sound");}
}class Dog extends Animal {@Overridepublic void makeSound() {// 子类方法重写System.out.println("Dog barks");}public void playBall() {System.out.println("Dog likes playing balls");}
}class Cat extends Animal {@Overridepublic void makeSound() {// 子类方法重写System.out.println("Cat meows");}
}public class Main {public static void main(String[] args) {// Example 1: 向上转型// 父类对象引用指向子类对象引用:向上转型/自动转型/隐式转型Animal animal1 = new Dog();  Animal animal2 = new Cat();// 使用父类对象调用子类重写的方法animal1.makeSound();   // 调用子类Dog的重写方法,输出 "Dog barks"animal2.makeSound();   // 调用子类Cat的重写方法,输出 "Cat meows"// Example 2: 向下转型,需要强制类型转换// instansof: 判断一个对象是不是一个类的实例if(animal1 instanceof Dog){Dog dog = (Dog)anotherAnimal;dog.playBall();}}
}
  1. 上面说父类无法调用子类特有对象,但可以通过向下转型实现,如Example2实现。

相关文章:

【java】基础——多态

多态基本知识思维导图 多态的代码实现,注意父类对象引用指向子类对象引用(向上转型)的方法,父类就可以调用子类重写的方法和派生的方法,但不能调用子类特有的方法: class Animal {public void makeSound()…...

Go语言使用cron/v3实现定时任务

一、获取cron/v3包 go get github.com/robfig/cron/v3v3.0.0安装v3版本的cron包。 二、创建cron调度器 使用cron.New()创建一个新的Cron调度器: c : cron.New()三、添加定时任务 使用AddFunc方法添加定时任务,参数是cron表达式和任务函数: c.AddFunc("* * * * *&quo…...

photoshop PS 查看像素坐标、像素颜色、像素HSB颜色

方法一 photoshop 菜单栏 窗口菜单->信息菜单项(F8), 在信息窗口里会有当前的 x,y坐标 方法二 photoshop 菜单栏 视图菜单->标尺菜单项(ctrlR) 宽度和高度边上都有标尺,默认的是厘米,右键单机宽度和高度边上…...

SpringCloud实用篇3----Docker

1.初识Docker 1.1 什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致…...

使用阿里云服务器搭建Discuz论坛网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器建站教程,本文是搭建Discuz论坛,Discuz!是一款通用的社区论坛软件系统,它采用PHP和MySQL组合的基础架构,为您提供高效的论坛解决方案。本文介绍如何在CentOS 7操作系统的ECS实例上搭建Discuz! X3.4…...

gitee(码云)如何生成并添加公钥配置用户信息

一,简介 在使用Gitee的时候,公钥是必须的,无论是克隆还是上传。本文主要介绍如何本地生成和添加公钥到服务器,然后配置自己的用户信息,方便日后拉取与上传代码。 二,步骤介绍 2.1 本地生成公钥 打开git ba…...

C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用

文章目录 创建一个QT快速应用创建项目创建主视图添加应用逻辑为视图添加动画素材文件 参考文章 创建一个QT快速应用 本教程使用内置的QML类型,介绍了Qt Quick的基本概念。有关可以选择的用户界面选项的更多信息,请参阅用户界面。 本教程描述了如何使用…...

用友时空KSOA SQL注入漏洞复现(HW0day)

0x01 产品简介 用友时空KSOA是建立在SOA理念指导下研发的新一代产品,是根据流通企业最前沿的I需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的IT系统之间彼此轻松对话,帮助流通企业保护原有的IT投资,简化IT管理&#…...

java中编写代码:如何以sftp的形式把文件从服务器上面下载下来?(有账号和密码)

在Java中,你可以使用JSch库来实现通过SFTP协议下载文件。以下是一个简单的示例代码: import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SFTPDownloa…...

【24择校指南】南京大学计算机考研考情分析

南京大学(A) 考研难度(☆☆☆☆☆) 内容:23考情概况(拟录取和复试分数人数统计)、院校概况、23初试科目、23复试详情、参考书目、各科目考情分析、各专业考情分析。 正文2178字,预计阅读:6分…...

IL汇编 ldarg 指令学习

IL汇编代码, .assembly extern mscorlib {} .assembly MathLib {.ver 1 : 0 : 1 : 0 }.module MathLib.dll.namespace MyMath { .class public ansi auto MathClass extends [mscorlib]System.Object{ .method public int32 GetSquare(int32) c…...

【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介绍】

文章目录 ARMv9 系列CoreARM Cortex-A510 介绍ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心设计,三款新CPU分别是旗舰核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU,三款新GPU核心则…...

章节7:Burp Intruder模块

章节7:Burp Intruder模块 参考资料 https://portswigger.net/burp/documentation/desktop/tools/intruder 01 Intruder模块作用与原理 原理 http://xxx.xx.com/bbs/index.php?namewuyanzu&mottogo 对请求参数进行修改,分析响应内容&#xff0…...

vue pc端项目el-upload上传图片时加水印

html代码&#xff1a; <a-uploadclass"avatar-uploader"list-type"picture-card":file-list"uploadFileList":custom-request"uploadDoneHandle":before-upload"beforeUpload":remove"removeHandle"v-decorat…...

ubuntu中redis+mysql安装使用

pip -V 回车&#xff08;大写V&#xff09;&#xff1a;python包库安装路径 python -m site: python查找路径 1、redis ubuntu安装redis System has not been booted with systemd as init system (PID 1). Cant operate&#xff1b;该问题是systemctl start redis报错&#…...

若依-plus-vue启动显示Redis连接错误

用的Redis是windows版本&#xff0c;6.2.6 报错的主要信息如下&#xff1a; Failed to instantiate [org.redisson.api.RedissonClient]: Factory method redisson threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect t…...

【C++11智能指针】

c智能指针 手动管理内存很容易造成内存泄漏&#xff0c;现代c的智能指针可以在很大程度上帮我们缓解这个问题&#xff0c;降低我们的手动管理内存的心智负担&#xff0c;智能指针有好几种&#xff0c;比如shared_ptr、unique_ptr还有weak_ptr 共享指针shared_ptr 共享指针会…...

如何实现Excel中多级数据联动

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 在类Excel表格应用中&#xff0c;常用的需求场景是根据单元格之间的数据联动&…...

使用Pytest集成Allure生成漂亮的图形测试报告

目录 前言 依赖包安装 Pytest Allure Pytest Adaptor 改造基于Pytest的测试用例 生成测试报告 运行测试 生成测试报告 打开测试报告 资料获取方法 前言 之前写过一篇生成测试报告的博客&#xff0c;但是其实Allure首先是一个可以独立运行的测试报告生成框架&#xff…...

opencv基础49-图像轮廓02-矩特征cv2.moments()->(形状分析、物体检测、图像识别、匹配)

矩特征&#xff08;Moments Features&#xff09;是用于图像分析和模式识别的一种特征表示方法&#xff0c;用来描述图像的形状、几何特征和统计信息。矩特征可以用于识别图像中的对象、检测形状以及进行图像分类等任务。 矩特征通过计算图像像素的高阶矩来提取特征。这些矩可以…...

Vite项目静态资源复制终极指南:vite-plugin-static-copy插件实战详解

Vite项目静态资源复制终极指南&#xff1a;vite-plugin-static-copy插件实战详解 在现代化前端工程中&#xff0c;静态资源的高效管理往往决定着项目的可维护性和扩展性。当项目需要支持多主题切换、多环境部署或复杂资源分发时&#xff0c;如何在构建流程中智能处理静态文件就…...

AIAgent不是升级ADAS,而是重构OS——奇点大会首发车载智能体中间件架构(含GitHub私有仓申请通道)

第一章&#xff1a;AIAgent不是升级ADAS&#xff0c;而是重构OS——奇点大会首发车载智能体中间件架构&#xff08;含GitHub私有仓申请通道&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 传统ADAS系统以规则驱动、功能割裂、响应延迟为特征&#xff0c;而AIAgen…...

【CVE-2026-25253】--漏洞复现、漏洞原理以及修复建议

前言‌ OpenClaw‌ 是一款 ‌开源、本地优先的 AI 智能体框架‌,核心目标是让 AI 从“只会聊天”升级为“能动手执行真实任务”,被社区亲切地称为“‌龙虾 AI‌”或“‌小龙虾‌”‌ 一、漏洞概述 1、详情 CVE-2026-25253是OpenClaw控制界面(Control UI)中存在的跨站We…...

时间块工作法:编程专注力提升200%

在软件测试领域&#xff0c;专注力是高效工作的核心驱动力。测试从业者常面临多任务切换、需求变更频繁和干扰源众多的挑战&#xff0c;导致注意力分散、效率低下。时间块工作法&#xff08;Time Blocking&#xff09;作为一种科学的时间管理策略&#xff0c;通过将工作时间分割…...

AMD GPU本地AI部署终极指南:Ollama-for-AMD让大语言模型在AMD显卡上飞起来

AMD GPU本地AI部署终极指南&#xff1a;Ollama-for-AMD让大语言模型在AMD显卡上飞起来 【免费下载链接】ollama-for-amd Get up and running with Llama 3, Mistral, Gemma, and other large language models.by adding more amd gpu support. 项目地址: https://gitcode.com…...

如何利用Jbuilder构建优雅的JSON:探索Builder风格DSL的核心原理

如何利用Jbuilder构建优雅的JSON&#xff1a;探索Builder风格DSL的核心原理 【免费下载链接】jbuilder Jbuilder: generate JSON objects with a Builder-style DSL 项目地址: https://gitcode.com/gh_mirrors/jb/jbuilder Jbuilder是一个强大的Ruby库&#xff0c;它提供…...

PCB过孔寄生电容的本质、影响与减小核心原理

在高速 PCB 设计领域&#xff0c;过孔虽小&#xff0c;却是影响信号完整性的关键 “咽喉”。其中&#xff0c;过孔寄生电容作为最普遍的寄生效应&#xff0c;在 GHz 级高频电路中会引发信号边沿劣化、阻抗不连续、时序偏移等一系列问题&#xff0c;成为制约高速系统性能的重要因…...

FPGA数字时钟设计进阶:如何优化你的Verilog代码(以Vivado为例)

FPGA数字时钟设计进阶&#xff1a;如何优化你的Verilog代码&#xff08;以Vivado为例&#xff09; 当你的FPGA数字时钟项目已经能够正常运行&#xff0c;却发现代码冗长、维护困难时&#xff0c;是时候考虑代码优化了。本文将带你从初级实现跃升到专业级设计&#xff0c;通过Ve…...

AiZynthFinder终极指南:3步实现AI驱动的化学合成路线规划

AiZynthFinder终极指南&#xff1a;3步实现AI驱动的化学合成路线规划 【免费下载链接】aizynthfinder A tool for retrosynthetic planning 项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder 你是否曾为复杂分子的合成路线设计而苦恼&#xff1f;面对海量的化…...

5分钟搞定YOLOv10部署:为什么这个方案最省心?

5分钟搞定YOLOv10部署&#xff1a;为什么这个方案最省心&#xff1f; 【免费下载链接】yolov10 YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024] 项目地址: https://gitcode.com/GitHub_Trending/yo/yolov10 还在为深度学习框架的环境配置抓狂&#xf…...