【Day18】多态(理解与应用)

对于多态的理解 对 于java的多态理解 立即下载

1、多态概述

        多态是Java面向对象继封装、继承后的最后一个特征。

2、理解:

        例如:学生,通过学生类确定确定是哪一个学生,就是通过父类,找到其对应的子类。

        注意:多态的前提是有关系(子父类),没有关系找不到,且必须重写父类的方法

3、格式:

        类名 对象名=new 子类名();
        通过父类对象指向子类方法、属性。称(向上转型)

        子类名 对象名 = (子类名)父类对象;
        通过子类对象,指向父类方法、属性,因为我们不知道它们是否有关系,所以我们引出instanceof关键字,判断是否能进行转型。称(向下转型(强转))

4、instanceof:

        主要用于向下转型,返回类型为布尔类型。

5、多态特点:

        编译看作,运行看右。

举例:通过一个小的继承,可以看出,如果不继承,在编译的时候就会报错

public class PolymorphismTest {
    public static void main(String[] args) {
//        向上转型
//        ----------------------------------------------------------------
//        这就是多态,左边是父类,右边是子类创建一个对象

        

Polymorphism1 pp=new Polymorphism2();


        
//        编译时看左边,pp是父类对象,.show():是子类重写父类的方法
//        通过父类的对象,指向子类的重写方法
        pp.show();
//        ----------------------------------------------------------------
        
        
//        向下转型,
//        ----------------------------------------------------------------
//        强转,跟int数据类型转byte数据类型的格式相似
//        int num1=100;
//        byte num2=(int)num1;
//        Polymorphism3 pp2 = (Polymorphism3)pp;        //报错,因为,Polymorphism3不是Polymorphism1的子类
      

 Polymorphism2 pp2 = (Polymorphism2)pp;
        pp2.show();


//        简单我们可以直接看的出来,但是很多时候我们是不确定的,这时候就要引入instanceof关键字了
        
//        **********************************************
//        instanceof返回值是布尔类型的数据
      

 if(pp instanceof Polymorphism2){
//            如果为真就强转
            Polymorphism2 pp3 = (Polymorphism2)pp;
            pp3.show();
        }

//        ----------------------------------------------------------------
        
    }
}

class Polymorphism1{
    public void show(){
        System.out.println("我是父类");
    }
}


class Polymorphism2 extends Polymorphism1{
    
//    重写父类里的方法
    public void show(){
        System.out.println("我是子类(1)的方法");
    }
}


class Polymorphism3{
//    重写父类里的方法
    public void show(){
        System.out.println("我是子类(2)的方法");
    }
}

 

电子纸价签实战:基于SSD1680的墨水屏驱动开发与优化 本文详细介绍了基于SSD1680驱动芯片的电子纸价签开发实战,涵盖硬件连接、驱动框架搭建、核心流程解析及性能优化。重点剖析了初始化配置、波形文件加载、图像数据写入与刷新触发等关键步骤,并提供了功耗优化、显示效果提升及代码健壮性等实用避坑指南,帮助开发者高效实现稳定低功耗的墨水屏驱动。 阅读详情

相关推荐

yanshee 机器人全流程指南

2.点击yanshee app右上角根据提示操作 3.当手机显示成功连接 ,按下机器人胸前按钮说出“ip地址”4.根据机器人播报的ip地址加上:8888使用浏览器访问,你就会看到 jupyterd的界面,里面可以新建文件也可以改他存在的文件。我们使了yanshee机器人,这个是面向K12、中高职、高校学生推出的开源人形机器人教育平台,应用于课程教学、竞赛、科研活动等场景。我们接下来可以根据这些apl做许多好玩的,比如控制他运动,跳舞唱歌,it`s easy。注意电脑,手机,机器人必须连同一个网。

qq_44827929的博客 7614

多态的认识与使用

多态、向上转型、向下转型、instanceof

zz980806的博客 248

Codex驱动AEDT完成无线充电仿真——从双线圈建模到三维电磁场动画

本文介绍了一个利用Codex、PyAEDT和Ansys Electronics Desktop 2025 R2实现双线圈无线充电系统自动建模与仿真的案例。通过简化模型(平面线圈+铁氧体磁芯),完成了从参数化建模、电磁场求解到后处理的全流程自动化,获得了耦合系数(k=0.17)、三维电磁场分布及多周期动态可视化效果。研究发现:线圈间距对传输效率影响最大(10-30mm间距时效率从40.2%降至5.57%),横向偏移15mm会使效率下降35%,而磁芯厚度增加带来的效率提升有限(3→7mm仅提高1.67%)。该框

sjjsjjsjjsjjsjj的博客 447

十一,Java基础(多态的理解与应用)

1.多态概述 多态是继封装、继承之后,面向对象的第三大特性。 多态现实意义理解: 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。 Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。 3.多态体现为父类引用变量可以指向子类对象。 4.前提条件:必须有子父类关系。 **注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方

qq_42610167的博客 455

Synares病毒实战:如何从U盘感染中恢复你的Excel和EXE文件(附专杀工具推荐)

本文详细介绍了Synares感染型病毒的典型特征与传播机制,特别是其通过U盘感染Excel和EXE文件的行为。文章提供了一套从应急隔离、诊断到使用专杀工具进行深度清除与文件恢复的完整实战流程,并推荐了有效的安全软件和修复方法,旨在帮助用户最大程度救回重要数据并构建长效安全防护习惯。

weixin_29230649的博客 1830

Unity动态创建Avatar骨骼映射

Unity Avatar骨骼映射动态创建,适配Unity通用动画,无需经过第三方建模软件,可运行时创建

Nbin_Newby的博客 1万+

多态的理解和使用

多态的理解和使用

m0_62084473的博客 497

Vivado工程芯片型号更换全流程:从IP更新到生成新bit文件(避坑指南)

本文详细介绍了Vivado工程中更换芯片型号的全流程,包括IP更新、约束文件适配和生成新bit文件的关键步骤。特别针对FPGA开发中常见的兼容性问题提供避坑指南,帮助开发者高效完成芯片迁移,确保设计稳定性和性能优化。

weixin_42549451的博客 300

JAVA多态详解

JAVA多态 1.概念 ​ 在《Java核心技术 卷一》中是这样描述的:一个对象变量可以指示多种实际类型的现象被称为多态。 ​ 这样一句话感觉很难理解,下面我们用代码进行表述, 2.代码示例 ​ 首先,创建一个动物类,代码如下: public class Animal { //动物的年龄 private int age; //动物的性别 private String gender; ...

qq_42590394的博客 900

Windows下OpenMBEE项目MMS部署失败经历及改正

在Github里找到了上面的第一份文档,下载了MMS源代码(不知道为什么这个代码跟上面操作克隆得到的MMS代码不一样?好像是因为Gradle的版本问题,我本地之前已经安装过7.6.4的Gradle了,于是我找到gradle-wrapper.properties文件。后面在VScode中运行了一下依然是报这个错误,我在VScode终端直接执行。不知道为什么依然没什么用。打开“Windows PowerShell”。(如果是第一次运行它,将看到更长的输出)导航到要克隆存储库的文件夹,例如,

Yo_lan_da的博客 1869

【XAI】透视深度学习:CNN与Transformer的可解释性方法

深度学习模型的可解释性方法解析:本文探讨了CNN和Transformer两类主流模型的可解释性技术。针对CNN,介绍了显著性图、类激活图(CAM/Grad-CAM)和基于扰动的方法,通过可视化重要像素区域揭示决策依据。对于Transformer,重点分析了注意力机制可视化及其在文本处理中的应用,并介绍了积分梯度等归因方法。文章包含详细的Python实现示例(使用Captum库),涵盖从MNIST图像显著性分析到BERT文本注意力可视化,为初学者提供了可操作的技术指南。这些方法有助于增强模型透明度,提升AI系

u012133341的博客 382

Java—多态

子类向下转换的时候,只能转为子类对象原本的类型,不可转为其他类型。但可以看作父类对象来用。可以通过父类去声明创建子类对象(大—>小),不能通过子类对象去创建父类对象。多态就是将子类的身份提高到了父类的身份,但是并不会改变子类对象本质。成员变量:在多态情况下,只能用父类的成员变量。instanceof关键字—用于判断对象类型。在代码表现中,父类指向的是子类的对象。若父类无,则子类的特有函数一概不能用。子类未重写,则只能用父类的成员函数;成员函数:如果子类重写 则用子类;多态的前提是要有继承/实现的关系。

Hhujnmm的博客 579

【目标检测-YOLO】YOLOv5-v5.0-yolov5s网络架构详解(第一篇)

源码:GitHub - ultralytics/yolov5 at v5.0 由于YOLO v5 代码库在持续更新,如上图,有多个版本,每个版本的网络结构不尽相同。以下内容以 v5.0 为准,网络结构选用 yolov5s。 为了方便画图和理解网络结构,选用可视化工具:Netron 网页版进行可视化, 然后使用PPT作图。 在Releases · ultralytics/yolov5 · GitHub找到 v5.0中的Assets 中的yolov5s.pt并下载该权重。 下图为直接......

博观约取,厚积薄发 2万+

6个月Python学习计划 Day 18 - 继承、多态与魔术方法

摘要:今日学习重点围绕Python面向对象编程核心概念展开,涵盖类的继承、方法重写、多态思想和魔术方法使用。通过Employee-Manager继承案例展示方法重写,Team类演示__len__/__str__魔术方法,以及Pet类族体现多态特性。掌握这些技术能实现代码复用(继承)、灵活扩展(多态)和对象行为定制(魔术方法),是构建复杂Python程序的重要基础。随附的三个实践练习分别对应继承、魔术方法和多态的实际应用场景。

FAN的博客 625

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Python-Day 35】深入理解多态:代码更灵活的“鸭子类型”魔法

我们将详细解析 Python 中实现多态的核心思想——“鸭子类型”(Duck Typing),它赋予了 Python 代码无与伦比的灵活性和可扩展性。通过本文,你将掌握多态的基本概念、核心优势,并通过丰富的实战代码示例,理解如何在实际项目中运用多态编写出更优雅、更具适应性的代码。

吴师兄大模型的博客 1438

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Go语言-Day 22】解耦与多态的基石:深入理解 Go 接口 (Interface) 的核心概念

在 Go 语言的世界里,接口(Interface)是其设计哲学的灵魂,是实现代码解耦、构建灵活系统和实现多态的核心基石。不同于 Java 或 C\# 等语言中需要显式声明实现的侵入式接口,Go 语言采用了更为独特的“非侵入式”设计,也被称为“鸭子类型”。本文将作为接口系列的上篇,从最基础的概念出发,深入剖析 Go 语言接口的定义、实现方式、内部数据结构,并通过丰富的代码示例和图示,带你领略其如何优雅地实现多态,为编写出高内聚、低耦合的程序打下坚实基础。

吴师兄大模型的博客 1157

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java多态口诀,Java之路---Day12(多态),多态Java

Java之路---Day12(多态),多态Java2019-10-26-22:40:09目录:1.多态的概念2.多态的分类3.实现多态的三个必要条件4.多态的格式5.多态成员变量的使用特点6.多态成员方法的使用特点7.多态的好处8.多态的向上和向下转型1.多态的概念:多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得...

weixin_34026997的博客 251

Day14【面向对象】- 1.多态

多态: 是指同一行为,具有多个不同表现形式。从上面案例可以看出,Cat和Dog都是动物,都是吃这一行为,但是出现的效果(表现形式)是不一样的。前提【重点】有继承或者实现关系方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型:指子类对象继承的父类类型,或者实现的父接口类型。核心要点内容多态三要素继承关系 + 方法重写 + 父类指向子类运行机制属性看左,方法运行看右弊端补救用 instanceof 判断 + 向下转型实战意义。

tang7mj的博客 822

Java多态世界(day18)

上面的eat()方法是先在父类中找方法,父类没有的话,就算子类有编译也会报错。(如果引用方法在父类中存在,编译通过,找不到则报错。但是转的过程也就是down casting时会出现异常,关于异常处理,我们明天再讲。2.动态绑定:运行时先在子类中方法,没有则向上找,也就是从父类中找。大家可以看看下面的图,利用Java多态来分析这张图片。如果子类中有的方法父类没有,可以将父类强转为子类。

我闺蜜生七蛋 606

javase复习day14多态

根据需求完成代码:1.定义狗类属性:年龄,颜色行为:eat(String something)(something表示吃的东西)看家lookHome方法(无参数)2.定义猫类属性:年龄,颜色行为:eat(String something)方法(something表示吃的东西)逮老鼠catchMouse方法(无参数)3.定义Person类//饲养员属性:姓名,年龄行为:keepPet(Dog dog,String something)方法。

m0_72625929的博客 986

Day18 | 深入理解Object类

Java中的Object类是所有类的根类,定义了对象的基础行为。主要方法包括:toString()用于对象字符串表示,默认返回类名和哈希值;getClass()获取运行时类;hashCode()返回对象哈希值;equals()比较对象相等性,需满足自反性、对称性等特性;clone()创建对象副本,有浅拷贝和深拷贝之分。理解这些方法对掌握Java面向对象编程至关重要。建议子类重写toString()以提供更有意义的输出,equals()和hashCode()需保持一致逻辑,clone()需注意深浅拷贝区别。

懒惰蜗牛的博客 840

白马day06-继承与多态

自用笔记

carnegie001的博客 333

1-4 继承与多态\第4节 多态

这里写自定义目录标题P185day10_15_多态的概述P186day10_16_多态的格式与使用P187day10_17_多态中成员变量的使用特点平时你想看一个方法是谁的,怎么看? P185day10_15_多态的概述 P186day10_16_多态的格式与使用 子类当做父类来看待。 猫类当中动物类来看待。 子类没有的方法,就向上找父类。 理解:方法是看右边。 Fu obj = new Zi(); obj.method();用的是子类的。 package cn.itcast.day10.demo04;

qq_42788016的博客 176

Java学习Day18

开始继续往下推进,有点绕但是基本能理解

weixin_60840995的博客 145

day14 多态 包 final 权限修饰符 代码块

/

qq_41014040的博客 332

java学习计划——day05(继承,多态)

权限修饰符一般来说,成员变量都是private修饰,方法都是public修饰,其他两个很少用到。缺省就是什么都没有继承的特点1.单继承:一个类只能继承一个直接父类2.多层继承:也可以有爷爷类3.祖宗类:所有类都是object类的子类4.就近原则:优先访问自己类的,自己类没有的才访问父类例如这个代码,因为就近原则,第一个输出的name就是show的name;第二个用了this.name是因为成员变量和局部变量相同了,所以加了this;

fybjhuij的博客 645
上一篇: 【Day17.2】Java重写方法(toString 和 equals和快捷方式的使用)
下一篇: 吃货联盟系统简单实现(对象+数组)
「已注销」
博客等级 码龄4年 169粉丝 58原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

老板大气,I am happy

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值