”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 超类引用和子类对象

超类引用和子类对象

发布于2024-11-08
浏览:671
  • Java 是一种强类型语言。

  • 标准转换和自动升级适用于原始类型。

  • 严格执行类型兼容性。

  • 通常,一个类的引用变量不能引用另一类的对象。

Referências da superclasse e objetos da subclasse

  • 即使类 X 和 Y 在结构上相同,也不可能将 X 的引用分配给 Y 的对象,因为类型不同。

  • 一般来说,对象引用变量只能引用其类型的对象。

  • 类型强加的例外是超类的引用变量可以引用从该超类派生的任何子类的对象。

Referências da superclasse e objetos da subclasse

  • 由于 Y 源自 X,因此允许 x2 接收对 Y 对象的引用。

  • 引用变量的类型,而不是它引用的对象的类型,决定了可以访问的成员。

  • 当子类对象的引用被赋值给超类变量时,只能访问超类定义的成员。

  • 在示例中,x2 无法访问 Y 的成员 b,因为类 X 不知道子类添加的成员。

  • 分配给超类变量的子类引用很常见,尤其是在类层次结构中调用构造函数时。

  • 子类可以受益于将超类中的对象作为参数的构造函数,从而允许创建对象的副本。

Referências da superclasse e objetos da subclasse

Referências da superclasse e objetos da subclasse

Referências da superclasse e objetos da subclasse

  • 在此程序中,t2 由 t1 构造而成,因此是相同的。

  • 此三角形生成器的注意事项:
    // 从另一个对象构造一个对象。
    三角形(三角形ob) {
    超级(ob); // 将对象传递给 TwoDShape
    的构造函数 样式 = ob.style;
    }

  • 它接收一个 Triangle 类型的对象并将其(通过 super)传递给此 TwoDShape 构造函数:
    //从另一个对象构造一个对象。
    TwoDShape(TwoDShape ob) {
    宽度 = ob.width;
    高度 = ob.height;
    }

  • TwoDShape() 构造函数期望接收 TwoDShape 类型的对象。

  • Triangle() 子类的构造函数向其传递一个 Triangle 类型的对象。

  • 这是有效的,因为来自超类(如 TwoDShape)的引用可以引用来自子类(如 Triangle)的对象。

  • 将派生类的对象的引用传递给超类的构造函数是可以接受的。

  • 超类构造函数 TwoDShape() 仅初始化属于 TwoDShape 类的成员,而不考虑 Triangle 子类的其他成员。

版本声明 本文转载于:https://dev.to/devsjavagirls/referencias-da-superclasse-e-objetos-da-subclasse-2d45?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在 AngularJS 中安全地设置变量的 iframe src 属性?
    如何在 AngularJS 中安全地设置变量的 iframe src 属性?
    在 AngularJS 中从变量设置 iframe src 属性在 AngularJS 中,尝试从以下位置设置 iframe 的 src 属性时可能会遇到问题一个变量。为了解决这个问题,这里有一个分步指南:1。注入 $sce 服务将 $sce(严格上下文转义)服务注入控制器以处理清理。functio...
    编程 发布于2024-11-08
  • 为什么我的 KeyListener 无法在 JPanel 中工作?
    为什么我的 KeyListener 无法在 JPanel 中工作?
    JPanel 中 KeyListeners 无响应:常见问题当使用 KeyListeners 检测 JPanel 中的击键时,开发人员经常遇到这样的问题:侦听器无法触发所需的操作。此问题可能由多个因素引起。焦点组件约束KeyListener 依赖将自身附加到焦点组件才能正常运行。默认情况下,焦点不会...
    编程 发布于2024-11-08
  • 从 React 到 React Native 的旅程
    从 React 到 React Native 的旅程
    作为一名 React / JS 开发人员,您可能有这样的想法 “我应该学习 React Native 吗?” 这是一个公平的问题,也是我几年前问自己的问题。事实证明,学习 React Native 绝对是正确的决定。这让我成为了亚马逊的高级开发倡导者,我现在使用 React Native 跨 And...
    编程 发布于2024-11-08
  • 使用 Filament 和 Laravel 构建强大的管理面板:分步指南
    使用 Filament 和 Laravel 构建强大的管理面板:分步指南
    Laravel 是一个强大的 PHP 框架,为开发 Web 应用程序提供了坚实的基础。 Filament 是一个开源、优雅的 Laravel 管理面板和表单构建器,可简化管理界面的创建。本指南将引导您使用最新版本的 Filament 和 Laravel 构建强大的管理面板。 Laravel SaaS...
    编程 发布于2024-11-08
  • 如何从 Pandas DataFrame 中提取列标题?
    如何从 Pandas DataFrame 中提取列标题?
    从 Pandas DataFrame 中检索列标题Pandas DataFrame 是通用的数据结构,可以实现高效的数据操作和分析。一项常见任务涉及提取列标题,这对于获取 DataFrame 结构的概述或进一步处理非常有用。假设您有一个从用户输入导入的 DataFrame,其中列的数量和名称未知。要...
    编程 发布于2024-11-08
  • 通过示例解释 Web 存储 API
    通过示例解释 Web 存储 API
    Web Storage API: বিস্তারিত আলোচনা Web Storage API হলো জাভাস্ক্রিপ্টের একটি শক্তিশালী API যা ব্রাউজারে ব্যবহারকারীর ডেটা স্টোর করার জন্য ব্যবহ...
    编程 发布于2024-11-08
  • 使用 Web 工具进行 Android 开发:使用 Ionic React 进行生产的最快方式
    使用 Web 工具进行 Android 开发:使用 Ionic React 进行生产的最快方式
    Investing in Android development can yield a huge device market share, expanded market reach, and high return on investment. With over 6.8 billion sma...
    编程 发布于2024-11-08
  • 在Python中如何检查字符串是否以“hello”开头?
    在Python中如何检查字符串是否以“hello”开头?
    在Python中验证以“hello”开头的字符串在Python中,确定字符串是否以“hello”开头类似于Bash的常规表达方式。实现方法如下:aString = "hello world" aString.startswith("hello")startsw...
    编程 发布于2024-11-08
  • 使用 Flama JWT 身份验证保护 ML API
    使用 Flama JWT 身份验证保护 ML API
    You've probably heard about the recent release of Flama 1.7 already, which brought some exciting new features to help you with the development and pro...
    编程 发布于2024-11-08
  • 掌握 MySQL 性能:MySQL 延迟是什么及其重要性
    掌握 MySQL 性能:MySQL 延迟是什么及其重要性
    了解数据库性能的复杂性可能具有挑战性,但了解延迟等关键指标至关重要。随着企业越来越依赖数据驱动的洞察力,确保数据库快速有效地响应变得至关重要。在本文中,我们将深入探讨 MySQL 延迟的概念、其重要性,以及数据库优化先驱 Releem 如何处理此指标。 什么是延迟? 延迟是一个在从网...
    编程 发布于2024-11-08
  • 如何以编程方式检查默认浏览器是否在 Android 上运行?
    如何以编程方式检查默认浏览器是否在 Android 上运行?
    检查Android上的应用程序执行状态作为一名Android开发者,您可能经常会遇到需要检查特定应用程序是否运行的情况,例如默认浏览器正在运行。此功能对于在应用程序中实现条件行为或交互至关重要。要以编程方式完成此操作,一种简单的方法涉及利用 ActivityManager 类。以下代码片段提供了如何...
    编程 发布于2024-11-08
  • Nestjs 中的事件
    Nestjs 中的事件
    什么是活动? 事件是指示已发生操作或状态更改的信号或通知。在应用程序的上下文中,事件允许系统的不同部分以异步和解耦的方式进行通信。这在微服务架构中特别有用,在微服务架构中,您需要组件独立运行,但仍然能够“监听”并对系统其他地方发生的变化做出反应。 NestJS 中的事件 在 NestJS 中,使用 ...
    编程 发布于2024-11-08
  • JavaScript 中的“&”和“&&”运算符有什么区别?
    JavaScript 中的“&”和“&&”运算符有什么区别?
    JavaScript 中“&”和“&&”运算符的区别JavaScript 中“&”和“&&”运算符具有不同的作用目的,每个都有自己的行为和使用场景。'&' 按位 AND运算符'&' 是按位 AND 运算符,主要用于低级编程或处理二进制数据时。它在两个数字操作数之间执行...
    编程 发布于2024-11-08
  • Python:操作系统模块介绍
    Python:操作系统模块介绍
    操作系统模块 为了导入我们使用的操作系统模块 import os 打印方法/函数中的所有可用选项 import os print(dir(os)) 打印我们使用的当前工作目录 import os print(os.getcwd()) 打印我们使用的目录位置 import os pa...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3