`
- 浏览:
67886 次
- 性别:
- 来自:
北京
-
Java中实现代码复用的两种方法:组合、继承。
1、组合:在新的类中产生现有类的对象。因此,只需将对象引用置于新类中即可。在上次也提到过,类域中为基本类型时能够自动被初始化为零,对象引用被初始化为null。如果想要初始化这些对象的引用,可以在下述四个位置实现:
(1)在定义对象的地方,
(2)类的构造器中;
(3)在正要使用这些对象之前,这种方式为惰性初始化。
(4)使用实例初始化。
组合式将现有类型作为新类型底层实现的一部分来加以复用。组合是一中“has-a”关系。
2、继承:使用extends关键字,子类会自动继承类中所有的域和方法。为了继承,一般将多有的数据成员指定为private,将所有的方法指定为public。(当然,protected成员也能借助导出类访问)。继承复用的是public的方法,也就是基类和子类之间的接口。
使用super调用基类的构造函数。
(2)使用继承时,子类具有基类的接口,因此它可以向上转型至基类。
继承是一种“is-a"的关系。
3、代理:继承和组合之间的中庸之道。将一个成员对象置于所要构造的类中(像组合),但与此同时我们在新类中暴露了该成员对象的方法(像继承).java并没有提供对它的直接支持。
4、组合和继承的选择:尽管面向对象极力强调继承,一般应该优先选择组合。在不知道选择哪种方式时,问一问自己是否需要从新类向基类进行向上转型,如果必须向上转型,则继承是必要的,如果不需要,则要好好考虑是否真的需要继承。
5、final关键字
(1)final数据:基本数据类型标识常量,对于对象引用,final使引用恒定不变。
当static 和final连用是,标识该域占据一段不能改变的存储空间。定义为static 强调只有一份,final强调是一个常量。
(2)final参数:可以读参数,但是不能更改参数。主要用来想匿名内部类传递数据。
(3)final方法;将方法锁定,防止继承类修改它。只有在想明确禁止覆盖时,才将方法设置为final。类中所有的private方法都饮食的指定为final。
(4)final类:当某个类整体被设定为final时,就表明了不打算继承该类,也不允许别人这样做。final类中所有的方法都隐式的定义为final,无法覆盖它们。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
【Java学习笔记——良葛格】是一份由爱好者良葛格整理的Java学习资料,主要以PDF格式呈现,虽然可能不完整,但包含了丰富的Java编程基础知识和实践技巧,旨在为初学者提供一个学习和参考的平台。以下是笔记中可能...
Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...
这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...
这份"个人学习的java笔记——思维导图"涵盖了上述诸多Java编程的核心知识点,通过思维导图的方式,使得学习者可以更直观地理解和记忆这些复杂的概念,对提升Java学习效果大有裨益。无论你是初学者还是有经验的开发者...
良葛格的《Java JDK5.0学习笔记》是一本面向初学者的教程,旨在帮助读者掌握这个版本的核心概念和技术。以下是基于该书部分内容的知识点详解: 1. **泛型**:JDK 5.0引入了泛型,这是一种强大的类型系统增强,允许...
**JDK 6学习笔记——PPT简体版** Java Development Kit(JDK)是Java编程语言的核心组件,它提供了开发和运行Java应用程序所需的工具和环境。JDK 6是Oracle公司发布的一个重要版本,为开发者带来了许多改进和新特性...
这份"Java笔记——2017年3月3日"涵盖了多个关键概念,对于深入理解Java编程至关重要。下面将逐一详解这些知识点: 1. **泛型**:泛型是Java 5引入的一项特性,它允许在类、接口和方法中使用类型参数,增强了代码的...
在"JAVA学习笔记第七天——示例代码Day07"的压缩包中,你可以找到相关的示例代码,包括这些概念的实际应用。通过阅读和实践这些代码,你将更深入地理解访问修饰符、final关键字、接口以及接口和类的关系在实际编程中...
### Java学习笔记——面向对象与面向过程对比及面向对象特性详解 #### 面向对象基本概念 在Java学习过程中,面向对象是一个重要的概念。它不仅是一种编程思想,也是理解和解决问题的有效方式。面向对象的基本单位...
在JAVA学习的过程中,第八天的主题聚焦于几个关键概念:接口的使用、多态以及内部类。这些知识点都是Java编程中的核心部分,对于理解和编写复杂的Java应用程序至关重要。 首先,让我们深入探讨接口(Interface)。...
"淡淡Java学习笔记"显然是一份记录了作者学习Java过程中的思考与理解的文档,通过这份笔记,我们可以一同探索Java的核心概念和重要知识点。 首先,Java的学习通常从基础语法开始,包括数据类型(如整型、浮点型、...
**Java学习笔记——Java SE基本知识** Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植性而闻名。Java Standard Edition(Java SE)是Java平台的基础,它提供了开发和运行桌面应用程序、...
《Think In Java 学习笔记》 在Java编程语言中,对象是核心概念,它们代表着程序中的实体和行为。对象具有状态、行为和标识,是现实世界概念在软件中的映射。对象的状态由其内部的属性(或称数据成员)表示,行为则...
### Java设计模式学习笔记——外观模式(Facade Pattern) #### 概述 设计模式是软件工程领域中一种解决常见问题的可复用解决方案。在Java开发过程中,掌握设计模式能够帮助开发者更好地组织代码结构,提高代码的...
在Java NIO中,主要使用非阻塞I/O和I/O多路复用,尤其是通过选择器Selector实现。Selector允许一个线程处理多个通道的事件,当一个通道上有可读或可写事件时,选择器会返回相应的SelectionKey,然后通过这些键来处理...
【标题】"凯达Java学习笔记.rar"是一个包含丰富的Java技术知识的学习资源,主要涵盖了Java的基础、进阶以及企业级应用开发的相关内容。这个压缩包很可能是某位名为"凯达"的学习者或讲师整理的一套Java学习资料,旨在...
【JAVA WEB学习笔记】——Tomcat中数据源的配置与使用 在Java Web开发中,数据源(DataSource)是管理数据库连接的关键组件。它提供了一种高效、灵活的方式来获取和管理数据库连接,尤其是在大型企业级应用中。...