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

    你可能感兴趣的文章
    Nginx配置负载均衡到后台网关集群
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
    查看>>
    NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
    查看>>