”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 遗产

遗产

发布于2024-11-01
浏览:208
  • 继承是面向对象编程的三个基本原则之一。

  • 允许创建层次分类。

  • 通过继承,您可以创建一个通用类来定义一组相关项的共同特征。

  • 这个通用类可以被其他更具体的类继承,从而添加专有特性。

  • 用Java术语来说,继承的类称为超类。

  • 继承的类称为子类。

  • 子类是超类的特殊版本。

  • 子类继承了超类的所有变量和方法,并添加了自己独特的元素。

继承的基本方面

  • Java 支持继承,允许一个类在其声明中合并另一个类。

  • 这是通过 extends 关键字完成的。

  • 子类向超类添加功能(扩展)。

  • 这方面的一个例子是创建一个名为 TwoDShape 的超类,它存储二维对象的宽度和高度。

  • 创建了一个名为 Triangle 的子类来扩展 TwoDShape。

  • extends 关键字用于创建子类。

Herança

Herança

  • TwoDShape 定义通用二维形状的属性,例如正方形、矩形、三角形等。

  • Triangle 类是 TwoDShape 的子类,并创建一个特定类型:三角形。

  • Triangle 继承了 TwoDShape 的所有内容,并添加了样式字段、area() 方法和 showStyle() 方法。

  • style 存储三角形的样式,可以是任何描述,例如“完整”、“轮廓”或“等腰”。

  • area()方法计算并返回三角形的面积。

  • showStyle() 方法显示三角形的样式。

  • Triangle 可以在 area() 中以及直接在 t1 和 t2 对象中访问 TwoDShape 的宽度和高度成员。

  • TwoDShape 尽管是 Triangle 的超类,但它是一个独立的类,可以单独使用。

TwoDShape 形状 = new TwoDShape();
形状.宽度 = 10;
形状.高度 = 20;
shape.showDim();

  • TwoDShape 类的对象不知道或访问 TwoDShape 的任何子类。

Herança

  • 继承超类的类声明:

类子类名扩展超类名{
// 类体
}

  • 在 Java 中,您只能为您创建的任何子类指定单个超类。

  • Java 不支持多重继承(从同一个子类中的多个超类继承),与 C 不同。

  • 可以创建一个继承层次结构,其中一个子类成为另一个子类的超类。

  • 没有类可以是其自身的超类。

  • 继承的一个优点是超类可以定义多个对象共有的属性,从而允许创建许多特定的子类。

  • 每个子类都可以在超类的基础上定义自己的具体分类。

  • 一个例子是创建 TwoDShape 的子类来封装矩形。

Herança

  • 矩形类是 TwoDShape 的子类。

  • 添加 isSquare() 方法,用于判断矩形是否为正方形(当宽度等于高度时)。

  • 还添加了area()方法,该方法计算矩形的面积。

版本声明 本文转载于:https://dev.to/devsjavagirls/heranca-2nbo?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-05-09
  • 您如何在Laravel Blade模板中定义变量?
    您如何在Laravel Blade模板中定义变量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配变量对于存储以后使用的数据至关重要。在使用“ {{}}”分配变量的同时,它可能并不总是最优雅的解决方案。幸运的是,Blade通过@php Directive提供了更优雅的方法: $ old_section =“...
    编程 发布于2025-05-09
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-05-09
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 in position 2-3: truncated \UXXXXXXXX escapeThi...
    编程 发布于2025-05-09
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-05-09
  • 如何从2D数组中提取元素?使用另一数组的索引
    如何从2D数组中提取元素?使用另一数组的索引
    Using NumPy Array as Indices for the 2nd Dimension of Another ArrayTo extract specific elements from a 2D array based on indices provided by a second ...
    编程 发布于2025-05-09
  • 同实例无需转储复制MySQL数据库方法
    同实例无需转储复制MySQL数据库方法
    在同一实例上复制一个MySQL数据库而无需转储在同一mySQL实例上复制数据库,而无需创建InterMediate sqql script。以下方法为传统的转储和IMPORT过程提供了更简单的替代方法。 直接管道数据 MySQL手动概述了一种允许将mysqldump直接输出到MySQL clie...
    编程 发布于2025-05-09
  • 如何在其容器内为DIV创建平滑的左右CSS动画?
    如何在其容器内为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-05-09
  • Java数组中元素位置查找技巧
    Java数组中元素位置查找技巧
    在Java数组中检索元素的位置 利用Java的反射API将数组转换为列表中,允许您使用indexof方法。 (primitives)(链接到Mishax的解决方案) 用于排序阵列的数组此方法此方法返回元素的索引,如果发现了元素的索引,或一个负值,指示应放置元素的插入点。
    编程 发布于2025-05-09
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    编程 发布于2025-05-09
  • 在Python中如何创建动态变量?
    在Python中如何创建动态变量?
    在Python 中,动态创建变量的功能可以是一种强大的工具,尤其是在使用复杂的数据结构或算法时,Dynamic Variable Creation的动态变量创建。 Python提供了几种创造性的方法来实现这一目标。利用dictionaries 一种有效的方法是利用字典。字典允许您动态创建密钥并分...
    编程 发布于2025-05-09
  • 在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在JTable中维护jtable单元格渲染后,在JTable中,在JTable中实现自定义单元格渲染和编辑功能可以增强用户体验。但是,至关重要的是要确保即使在编辑操作后也保留所需的格式。在设置用于格式化“价格”列的“价格”列,用户遇到的数字格式丢失的“价格”列的“价格”之后,问题在设置自定义单元格...
    编程 发布于2025-05-09
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 考虑文档中给出的示例:这是内部发生的事情: 现在在3月3日添加另一个月,因为2月在2001年只有2...
    编程 发布于2025-05-09
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-05-09
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-05-09

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

Copyright© 2022 湘ICP备2022001581号-3