复用类(组合、继承)

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. 调用导出类构造器的主体。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值