Java——基础知识(十)——多态、对象类型转换

Windows 64 位系统下安装配置 DOSBox 及 debug.exe 该篇博客同样作为类似问题 “如何在 Windows 64 位系统下进入 debug” 的答案。 很多同学初看王爽的《汇编语言》,或者因为其它原因需要进入 debug 调试模式下学习汇编语言的时候,会发现进入不了,出现类似以下的错误提示。 这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗口下进入 debug 调试模式。那么对于使用 64 位 Windows 系统的用户来说,该怎样才能够顺利进入 d 阅读详情

如有不妥之处欢迎指正



多态

  • Java的多态是由类的继承、 方法的重写、父类的引用(类似指针)指向子类对象体现的

类的继承和方法重写体现多态

class A
{
    public void f()
    {
        System.out.print("A\n");
    }

    public void g()
    {
        System.out.print("C\n");
    }
}

class B extends A
{
    public void f()
    {
        System.out.print("B\n");
    }
}

public class Main
{
    public static void main(String [] args)
    {
        A a = new A();
        B b = new B();

        a.f();
        b.f();
        b.g();
    }
}

输出

A
B
C

对象类型转换

  • 将子类对象当作父类类型使用(向上转型)
class A{}

class B extends A{}

public class Main 
{
    public static void main(String [] args)
    {
        A b = new B();  //注意此处通常为A()
    }
}
  • 注意:
    此时父类对象(A)并不能调用对象B中特有 的方法

instanceof关键字

  • 在使用引用进行强制类型转换时,父类向下转换时必须转换为本质类型,为判断一个对象是否是某个类或接口的实例或子类实例(本质类型),引用instanceof进行判断
对象(或对象引用变量) instanceof类(或接口)
-----------------------------------------
class A{}

class B extends A{}

class C extends A{}

public class Main
{
    public static void main(String [] args)
    {
        A a = new B();
        if(a instanceof C)       //判断是不是本质类型
        {
            C c = (C) a;         //通过引用进行对象类型转换
        }
        else
        {
            System.out.print("1");
        }
    }
}
自研半导体Fab缺陷分析系统:从Klarf解析到Defect Map可视化的实战替代方案 本文分享了自研半导体Fab缺陷分析系统的实战经验,重点解析了Klarf文件格式与坐标系转换的核心技术,并详细介绍了从数据解析到Defect Map可视化的完整实现路径。该系统旨在为成本敏感或追求技术自主的团队提供一套功能完备的Klarity Defect平替方案,有效降低对昂贵商业软件的依赖,实现缺陷数据的自主分析与可视化。 阅读详情

相关推荐

【机器学习】实验3,贝叶斯垃圾邮件识别(完整代码实现+报告)

电子邮件是互联网的一项重要服务,在大家的学习、工作和生活中会广泛使用。但是大家的邮箱常常被各种各样的垃圾邮件填充了。有统计显示,每天互联网上产生的垃圾邮件有几百亿近千亿的量级。因此,对电子邮件服务提供商来说,垃圾邮件过滤是一项重要功能。而朴素贝叶斯算法在垃圾邮件识别任务上一直表现非常好,至今仍然有很多系统在使用朴素贝叶斯算法作为基本的垃圾邮件识别算法。本次实验数据集来自的中文垃圾邮件数据集,目录解压后包含三个文件夹,其中data目录下是所有的邮件(未分词),已分词好的邮件在data_cut目录下。

高丽大学人工智能硕士在读|专注大模型、RAG、OCR与AI工程实践 5026

Java多态对象的类型转换

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常。 在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”。 很多时候,我们会将变量定义为父类的类型,却引用子类的对象,这个过程就是向上转型。程序运行时通过动态绑

iOS&Android开发 832

【硬核指南/MI50 32G/Ubuntu】从零部署大模型:MI50显卡Ubuntu系统驱动安装与避坑全记录

本文详细记录了在Ubuntu系统上为AMD MI50显卡安装驱动并部署大模型的完整流程,包括硬件兼容性检查、BIOS关键设置、系统安装优化、ROCm驱动安装及常见问题解决方案。特别针对MI50显卡在X99平台上的特殊配置需求提供了实用技巧,帮助用户避免常见陷阱,提升大模型训练效率。

weixin_42520909的博客 806

Java 多态中的类型转换(instanceof)

引用类型转换 1、向上类型转换(自动/隐式类型转换),是小类型转化成大类型,不存在认了风险。即子类型对象也是父类型。 2、向下类型转化(强制类型转化),大类型转化成小类型,存在一定风向。多态实例后,都可以向上类型转化,但是转化后,子类型对象间的互相转换就会存在一定风险。如何规避风险? 使用instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题 //创建子类对象

风中的劲草 1万+

BSL编程语言 —— 系统化程序设计

BSL编程语言简介 文章目录0. 选择编程语言1. 写简单的表达式(Expression) 0. 选择编程语言 如果你第一次使用DrRacket,打开后需要选择Beginning Student Language (BSL) Language -> Choose Language (或直接按Ctrl + L),看到如下洁面后选择Beginning Student,点击OK 定义区【De...

CSDoneRight的博客 6451

FFmpeg流媒体开发避坑指南:avformat_open_input超时设置的那些坑

本文深入剖析了FFmpeg流媒体开发中avformat_open_input函数的超时设置难题。针对默认阻塞行为、无效的timeout参数以及不稳定的线程取消方案等常见误区,文章详细解读了官方推荐的interrupt_callback机制,并提供了健壮的超时控制器实现方案与最佳实践,帮助开发者构建稳定可靠的流媒体应用。

weixin_29239279的博客 237

Java知多少(33)多态对象的类型转换

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常。在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”。很多时候,我们会将变量定义为父类的类型,却引用子类的对象,这个过程就是向上转型。程序运行时通过动态绑定来实现对子类方...

weixin_34279061的博客 243

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 960

Java对象详解(7)多态和对象类型转换

1:多态的概念和实现 对于同一个方法来说,面对不同的对象会有不同的行为,这时多态就出现了 多态是方法的多态,不是属性的多态(多态与属性无关) 实现多态的3个关键:继承,方法的重写,父类引用指向子类对象 父类引用指向子类对象后,调用子类重写的方法,这是多态就出现了 ...

m0_58783923的博客 295

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 894

人工智能训练师三级考试备考全攻略|报名条件+真题+补贴申领一站式通关(2026版)

本专栏是人工智能训练师三级考证最完整的备考指南,共77篇文章,覆盖从职业认知、报名实操、AI基础知识、数据标注、模型训练测试部署、考前冲刺到考后进阶的全链路。本导读按模块整理了全部文章链接,帮你快速定位所需内容。人工智能训练师是国家认定的正式职业,证书可在osta.mohrss.gov.cn查询,三级证书可申领最高3120元技能补贴。

白话机器学习 1798

学习-Java继承和多态之对象类型的转换

第1关:学习-Java继承和多态之对象类型的转换 任务描述 相关知识 向上转型 向下转型 编程要求 测试说明 任务描述 本关任务:使用对象类型的转换,根据编程提示,完成猫类和动物类的转换,以及彼此方法和属性的调用。 相关知识 在之前的学习任务中,我们学习了基本类型之间的转换,这里我们来为大家介绍对象间的类型转换。 Java 语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。如果把引用类型转换为子类类型,则称为向下转型;如果把引用类型转换为父类类型,则称为

aiains的博客 6292

国科大学习资料--人工智能原理与算法-2020年期末考试题解析(学长整理)

国科大学习资料–人工智能原理与算法-2020年期末考试题解析 张文生老师主讲 试卷共有6道题,题目不难,希望大家能取得好的成绩。 3.9 传教士和野人问题。三个传教士和三个野人在河的一岸,有一条能载一个人或者两个人的船。请设法使所有人都渡到河的另一岸,要求在任何地方野人数都不能多于传教士的人数。这个问题在AI领域中很有名,是因为它是第一个从分析的观点探讨问题形式化的论文的主题(Amarel,1968)。 a. 请对该问题进行详细形式化,只描述确保该问题求解所必需的特性。画出完整的状态空间图。 b. 应用合适

无名何许人的博客 4788

Java 多态理解

多态:同样的引用调用同样的方法却做了不同的事情。 概述: 在设计一个方法时,通常希望该方法具备定的通用性。 例如要实现一个动物叫的方法,由于每种动物的叫声是不同的,因此可以在方法中接收一个动物类型的参数,当传入猫类对象时就发出猫类的叫声,传人犬类对象时就发出犬类的叫声。在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态。 在Java中为了实现多态,允许使用一个父类类型的变...

2987345656@qq.com的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java中的多态以及对象的类型转换

本文主要介绍了java中的多态的基本知识,以及个人对java中对象的类型转换的理解

qq_59750520的博客 1552

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

练习-Java继承和多态之对象类型的转换

依次判断 f、a、p 是否为 Fruits 的子类对象;把梨类对象赋值给水果类,其中 name 值为 bigPear,颜色为 green;输出当前水果类引用的名称;依次判断当前水果类引用是否为水果类和梨类的子类;将当前水果类引用强转为梨类;输出当前梨类的颜色,以上就是今天要讲的内容。...

m0_65420451的博客 3469

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java中的多态如何理解——详解

🎈🎈🎈本篇文章我们主要讲解的是Java中的多态,那么什么是多态呢?同类型的对象,执行同一个行为,会表现出不同的行为特征。接下来让我们一起对多态进行详细地讲解。

weixin_50635856的博客 8337

java多态性的强制转换_Java对象类型转换和多态性

对象类型转换分为向上转型和向下转型(强制对象转型)。向上转型是子对象向父对象转型的过程,例如猫类转换为动物类;向下转型是强制转型实现的,是父对象强制转换为子对象。这和基础数据类型的转换是类似的,byte在需要时会自动转换为int(向上转型),int可以强制转型为byte(向下转型)。对于对象转型来说,向上转型后子对象独有的成员将不可访问。意思是,在需要一只动物时,可以把猫当作一只动物传递,因为猫继...

weixin_42393829的博客 655

Java继承和多态之对象类型的转换

如果子类重写了父类的某个方法后,当对象的向上转型对象调用这个方法时一定是调用了这个重写的方法,因为程序在运行时知道,这个向上转型对象的实体是子类创建的,只不过损失了一些功能而已。向下转型必须保证父类对象引用的是该子类的对象,如果引用的是父类的其他子类对象,会抛出类型不匹配异常。本关任务:使用对象类型的转换,根据编程提示,完成猫类和动物类的转换,以及彼此方法和属性的调用。向上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法;向下转型对象访问重写父类的方法时,操作的是子类的方法;

n9102的博客 859

Java中对象的类型转换以及多态性

在这个示例中,我们首先定义了`Animal`类和它的子类`Dog`。然后在`main`方法中,我们创建了一个`Dog`对象`dog`,接着将`dog`向上转型为`Animal`类型并赋值给`animal`变量。当调用`animal.makeSound()`时,由于动态绑定机制,实际调用的是`Dog`类中重写后的`makeSound`方法,输出`Dog barks`。因为这个`Vehicle`对象实际上是`Car`的实例,所以向下转型成功,可以正常调用`Car`类中的`drive`方法和`honk`方法。

2301_77081232的博客 1734

Java(三)对象类型的转换和多态机制

一 对象类型的转换 对象类型的转换在java编程中经常遇到,主要包括向上转型和向下转型。 1.向上转型 可以理解为:父类引用指向子类对象 public class TestPoly { public static void main(String[] args){ Animal a = new Dog(); a.shout(); } } class Animal{ public ...

qq_31870569的博客 303

Java对象类型转换和强制对象类型转换

[Java] 语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。如果把引用类型转换为子类类型,则称为向下转型;如果把引用类型转换为父类类型,则称为向上转型。例如,Creature 类表示生物类,Animal 类表示动物类,该类对应的子类有 Dog 类,使用对象类型表示如下: 1. Animal animal = new Dog(); 2. Dogdog = (Dog) animal; // 向下转型,把Animal类型转换为Dog类型 3. Creature creat

kkkllllss的博客 2930

Java 基础-28- 多态 — 多态下的类型转换问题

向上转型(Upcasting)是安全的,不会发生异常,但会丧失子类特有的方法和属性。向下转型(Downcasting)需要显式转换,并且必须确保父类引用实际指向的对象是目标子类的实例,否则会抛出异常。使用instanceof来安全地判断对象类型,避免类型转换异常。在进行类型转换时,需要理解多态下的引用指向的实际对象类型,谨慎进行向下转型。

2301_77312064的博客 1080

java中对象类型的转换

java中对象类型的转换 1.基本数据类型的Casting: 自动类型转换:小的数据类型可以自动转换成大的数据类型 如long g=20; double d=12.0f 强制类型转换:可以把大的数据类型强制转换(casting)成小的数据类型如 float f=(float)12.0; int a=(int)1200L 2.对Java对象的强制类型转换称为造型 从子类到父类的类型转换可以自动进行 从父类到子类的类型转换必须通过造型( 强制类型转换) 无继承关系的引用类型间的转换是非法的 在造型前可以使用in

xiaotai1234的博客 2133
上一篇: Java——基础知识(九)——抽象类与抽象方法、接口
下一篇: Java——基础知识(十一)——内部类
UDK_KL.
博客等级 码龄9年 124粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值