博客
关于我
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/

    你可能感兴趣的文章
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>