博客
关于我
java基础--03(复用类)
阅读量:714 次
发布时间:2019-03-17

本文共 1639 字,大约阅读时间需要 5 分钟。

Java对象关系的深度探索

在 Java编程的世界中,继承和抽象类是构建复杂对象关系的基石。本文将探讨这些核心概念的实现细节,以及它们在实际开发中的应用。


1. 继承

在 Java中,类之间可以通过 继承 关系建立层次结构。这种关系意味着一个新类(导出类)可以利用基类的属性和功能,扩展其特性。

默认访问控制符

Java默认的访问控制符是 包访问权限。因此,导出类只能访问基类的 public 成员。如果希望确保导出类无法访问基类的其他成员,需为基类的成员加上 private 修饰符。

super 关键字

导出类构造器默认会调用基类的无参构造器(默认构造器)。若基类没有默认构造器或需使用有参构造器,可以使用 super 关键字在导出类构造器的第一行调ably 基类构造器。

方法重载

Java允许方法重载,即在基类中定义的一个方法在导出类中可以有不同的名铭。这种情况下,导出类的方法不会屏蔽基类中的任何方法。

组合与继承的选择

组合 是将现有类的对象嵌入到新的类中,表现为新类内部含有该对象,用户盯nested对象的接口。而 继承 则表示类和基类共享同一基底,基类的方法和属性被导出类继承。

在选择组合还是继承时,可以问问自己一个问题:是否有需要向上转型的情况?如果有,则采用继承;否则,则选择组合。


2. 抽象类

抽象类是用于定义一组共性 MethodInfo 特点的通用模板。由于其定义的方法无法实现,通常可以通过继承来提供一个不具体的基底。

核心特点

  • 抽象方法:定义了方法名但不提供实现。
  • 不可实例化:抽象类不能被创建对象。
  • 抽象类的扩展:仅需在继承自抽象类的子类中实现抽嘬方法后,才能实例化子类。

使用场景

  • 抽象类的主要用途在于让一组共性功能从基类中提取,均匀化各子类的实现方式。

细节说明

  • 抽象类可以定义非抽象方法:并非所有的方法都必须是抽象的,子类可以重用基类中的方法。

3. 接口

接口式定义了一组规则或功能,允许多个实现类通过实现其中的方法与接口契合。其特别之处在于接口可以被多继承,但实现上需要明确指定。

接口特性

  • 全局常量:接口中的常量具有一定的安全性,是隐式的 staticfinal 的组合。
  • 策略模式:允许根据参数选择不同的处理逻辑。
  • 适配器模式:用于处理不兼容的接口,通过适配器实现功能一致性。

示例

public interface Processor {    String name();      Object process(Object o);}public class Upcase extends StringProcessor {    public String process(String input) {        return input.toUpperCase();    }}

4. Final 关键字

final 是用于定义不可改变或不可变的条件。它适用于数据和方法,确保它们在运行时保持恒定。

数据总结

  • final 数据:只能为基本类型且必须赋初值。
  • static final 数据:只有一份常量,初始化时不可被修改。
  • final 方法:预防重写,只有基类的方法可以是 final。

3个问题解答

  • 抽象类是否需要实现接口方法?

    • 。抽象类属于继承关系,无需实现接口方法。但若直接继承一个接口,则需实现其所有抽象方法。
  • 日期处理类在 Java 的哪个包中?

    • Java 提供了 java.util 包中的 Date 类,用于处理日期和时间。
  • Hibernate 中的一对多双向关联中的 <set> 元素的 inverse 属性.

    • inverse 属性用于指定待关联的方向,对应的 <one-to-many> 关系用于从一边到多边关系的映射。当需要从多边到一边时,需在 <set> 中指定 inverse="true"

  • 通过以上知识,编程时可以更灵活地设计复杂的对象关系,从而构建高效、可维护的应用程序。

    转载地址:http://zehhz.baihongyu.com/

    你可能感兴趣的文章
    numpy学习笔记3-array切片
    查看>>
    numpy数组替换其中的值(如1替换为255)
    查看>>
    numpy数组索引-ChatGPT4o作答
    查看>>
    numpy最大值和最大值索引
    查看>>
    NUMPY矢量化np.prod不能构造具有超过32个操作数的ufunc
    查看>>
    Numpy矩阵与通用函数
    查看>>
    numpy绘制热力图
    查看>>
    numpy转PIL 报错TypeError: Cannot handle this data type
    查看>>
    Numpy闯关100题,我闯了95关,你呢?
    查看>>
    nump模块
    查看>>
    Nutch + solr 这个配合不错哦
    查看>>
    NuttX 构建系统
    查看>>
    NutUI:京东风格的轻量级 Vue 组件库
    查看>>
    NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
    查看>>
    NutzWk 5.1.5 发布,Java 微服务分布式开发框架
    查看>>
    NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
    查看>>
    NUUO网络视频录像机 upload.php 任意文件上传漏洞复现
    查看>>