`

复用类(组合、继承)

 
阅读更多

1. 组合 composition

在新的类中产生现有类的对象,由于新的类是由现有类的对象组成,所以这种方法称为组合(composition)。

2.继承 inheritance

 

缺省构造器: 构造器不带参数(argument)。

带参数的构造器:你的类没有缺省的参数,或者是你想调用一个带有参数的构造器,必须用super显试地编写调用基类构造器。

protected  ,声明类方法,子类能继承

 

关键字

 final

final 应用的情况: 数据、方法和类

1. final 数据    永恒不变的数据

     &  它可以使一个永不改变的"编译期常量" (compile-time constant)

     &  它可以使一个在运行期被初始化的值,而你不希望它被改变。

# 原始类型: final 使数值恒定不变,

# 对象引用: final  使引用恒定不变,一旦引用被初始化指向一个对象,就无法对它进行改变以指向另一个对象。然而,对象其自身却是可以被修改的。

 

空白final

 

Java允许生成空白final(Blank final),即空白final是指被声明为final但又未给定初始值得数据成员。

注意: 编译器都确保空白final在使用前必须被初始化。但是,空白final在关键字final 的使用上提供了更大的灵活性。为此,一个类中的final数据成员就可以实现依据对象而有所不同,却又保持恒定不变的特性。

 

意思就是,空白final ,在构造函数中赋值。

 

final 参数

Java 允许你在参数列表中以声明的方式将参数指明为final。 这意味着你无法在方法中更改参数引用所指向的对象。

 

 

final 方法

使用final方法的原因有两个。第一个原因是把方法锁定,以预防任何继承类修改它的意义。

第二个原因是效率。如果你将一个方法指明为final,就是同意编译器将针对该方法的所有调用都转为内嵌(inline)调用。

final 和private : 类中的所有private方法都是被隐含是final的。

 

private 方法不能被重载overloading ,如果子类中有同priavate 同名的方法,则子类中的方法是子类增加的新方法。

 

final 类 

final 类的成员: 可以使final,也可以不是final。

final类的方法:被隐含是final的

 

面向对象特征:

抽象 : 抽象为类

封装: 通过合并特征和行为来创建新的数据类型。

继承:

多态(polymorphic):也称为   动态绑定 dynamic binding、后期绑定 late binding、运行时绑定 run-time binging

 

抽象类(abstract class):包含 abstract method 的类叫做抽象类。

        抽象类中可以没有抽象方法。

        抽象类不能创建对象。

        继承抽象类,必须实现所有的抽象方法,否则,子类也是抽象类。

抽象方法(abstract method) :仅有声明而没有方法体。

abstract void f();

 

 

构造器 和多态 

 

       构造器不具有多态性 (实际是 static方法,只不过该static声明是隐式的)

 

构造器调用顺序

1.在其他任何事物发生前,将分配给对象的存储空间初始化成二进制的零。

1. 调用基类构造器,这个步骤会不断反复的递归下去,首先是构造这种层次结构的根,然后是下一层导出类,等等。知道最底层的导出类。

 

2. 按声明顺序调用成员的初始化状态设置模块。(需要通过程序来证实----后续)

3. 调用导出类构造器的主体。

 

 

 

分享到:
评论

相关推荐

    再论组合和继承

    继承提供了强大的代码复用能力,但可能导致类层次过于复杂,甚至出现菱形继承问题,即多个基类有共同的祖先,子类继承自这些基类时可能会产生歧义。为解决这类问题,C++引入了虚继承(virtual inheritance),以确保...

    10丨理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?1

    继承是面向对象编程中的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用。继承表达了“is-a”关系,即子类是父类的一种特殊类型。然而,过度依赖继承会导致一系列问题: ...

    组合和继承的联合

    在编程世界中,组合和继承是面向对象编程的两种核心机制,它们允许我们构建复用性和可扩展性极强的代码。本章我们将深入探讨这两种概念的联合使用,以及它们在C++中的实现。 组合(Composition)是创建复杂对象的一...

    es5生成class支持构造传参继承函数复用多继承

    总结来说,虽然ES5没有`class`关键字,但我们可以通过函数、原型链、闭包和对象组合等方式实现类的构造传参、继承、函数复用和多继承。这些技巧在实际开发中非常实用,特别是在升级到ES6之前,对理解JavaScript的...

    C++学习笔记——继承和组合

    这种方式允许将多个简单类组合成更复杂的类,而不会出现继承关系。组合的优点在于它提供了一种更加灵活的方式来实现代码重用,并且更容易理解和维护。 #### 2. 示例解析 给定的部分内容中还提到了组合的例子: ```...

    类的继承的简单实现

    8. **继承的替代方案**:除了继承,还有其他方式实现代码复用,如组合(Composition)和接口(Interface)。组合允许一个类包含另一个类的实例,接口则定义了一组必须实现的方法,但不提供具体实现。 9. **实际应用...

    编程思想14章继承和组合的介绍

    在编程世界中,继承与组合是面向对象编程的两个核心概念,它们允许我们构建复杂、可复用且灵活的软件系统。本章“编程思想14章:继承和组合的介绍”深入探讨了这两个概念,旨在帮助开发者更好地理解和运用它们。 ...

    c++ 习题 派生类和继承

    7. **继承与组合**:继承是一种"is-a"关系,是代码复用的方式,基类方法的实现细节对子类可见。组合是"has-a"关系,通过组合其他对象创建新对象,组合中对象的内部细节对组合类不可见,提供黑盒式复用。继承关系在...

    JavaScript中的类继承

    对于代码复用,类继承提供了一种方式,使对象可以从一个或多个基对象继承特性,避免重复编写相同或相似的代码。 在JavaScript中实现类继承的一种方法是通过构造函数和原型链。例如,`Parenizor`构造函数创建了一个...

    采用普通类,接口,和抽象类实现单继承和多继承增,删,改,查

    总结起来,通过普通类、接口和抽象类的组合使用,我们可以有效地实现单继承和多继承,并应用于CRUD操作。单继承保证了简洁的层次结构,而多继承和接口提供了更灵活的代码复用。抽象类则为子类设定了必须实现的基本...

    ch12 组合与继承.ppt

    在实际编程中,合理利用组合和继承可以提高代码的可维护性和可扩展性,同时也降低了代码重复,提升了软件的复用性。然而,过度使用继承可能会导致类层次过于复杂,难以理解和维护,因此在设计时应适度使用这两种机制...

    Java设计一个银行帐户类(继承与多态)

    Java的继承机制允许一个类(如`BCOption`)继承另一个类(如`BankCount`),从而获得被继承类的所有非私有属性和方法。这里虽然没有明确的继承关系,但可以通过组合(Composition)的方式复用`BankCount`类的功能。...

    java中继承和组合中图形的简单类的定义

    ### Java中的继承与组合在图形类定义中的应用 在Java编程语言中,继承与组合是面向对象编程(OOP)的两大核心概念。通过继承,一个类可以从另一个类那里继承属性和方法,从而实现代码的复用;而通过组合,则是在类...

    java类的继承详解说明

    Java 类的继承详解说明 Java语言中,继承是面向对象编程的三大特征之一,是一种实现代码复用...继承是指子类继承父类的成员变量和方法,而组合是指一个类包含另一个类的对象。继承更应该叫做扩展,关键字是 extends。

    继承类的源代码

    这个"继承类的源代码"文件集合,可能是为了演示如何在OC中实现继承机制以及在实际项目中的应用。以下是对这一主题的详细解释。 1. **继承的基本概念**: 继承允许我们创建一个新类(子类或派生类),该类基于已...

    付哲C课程继承与功能组合.pdf

    通过学习该课程,我们可以深入掌握C++面向对象编程中的继承机制,并了解如何通过功能组合来增强软件模块化与复用性。同时,课程中的概念和示例也适用于云计算平台下的软件开发实践,体现了面向对象设计原则在现代云...

    类的组合和接口的实现

    - **代码复用**:每个组件类可以单独使用,也可以在不同上下文中组合。 - **松耦合**:改变或扩展组件类不会影响组合它的类。 - **增强可读性**:将复杂逻辑分散到更小、更专注的类中,使得代码更容易理解。 2. ...

    PHP Trait代码复用类与多继承实现方法详解

    Trait的引入,允许开发者在不同的类中复用代码,而不影响类的继承结构。 Trait的概念类似于其他编程语言中的Mixins,它允许开发者将一组方法组合在一起,以供不同的类使用。在PHP中,Trait可以像类一样声明,通过...

    Java编程复用类代码详解

    Java 编程复用类代码详解 Java 编程复用类代码详解是指在 Java 编程中重用已经存在的类代码...Java 编程复用类代码是提高开发效率和代码可读性的重要方法,通过组合、继承、代理和重写/重载等方法可以实现代码的复用。

    类的继承与多态性

    在面向对象编程中,类的继承与多态性是核心概念,它们允许我们构建复杂的、可复用的软件系统。让我们深入探讨这两个主题。 首先,类的继承是面向对象编程中的一个基本特性,它允许一个类(称为派生类或子类)从另一...

Global site tag (gtag.js) - Google Analytics