java中对类的复用是java引人注目的功能之一。复用类的诀窍就是使用类而不破坏现有程序代码。
类的复用方式分为以下几种:
一.组合
在新的类中产生现有类的对象,由于新类是由现有类的对象组成,所以称为组合。组合只是复用了现有类程序代码的功能,而并没有复用它的形式,所以这种方法十分直观。
组合语法:将现有类对象的引用定义于新类中,使用时将现有类初始化即可。
在定义了现有类引用后,在使用这个引用前必须先对其进行初始化,否则在使用现有类的任何功能时都会抛出异常,因为现有类引用在初始化之前只是一个null引用。
对现有类引用的初始化可以出现在:
1.定义引用时初始化,这意味着它将总是在新类的构造器被调用之前被初始化;
2.在新类的构造器中初始化;
3.就在要使用这个对象的某些功能之前对其初始化,这种方式称为惰性初始化,它的好处是只有当我们需要使用它的某些功能时才对它进行初始化,这样可以减少jvm的负担。
4.显式实例中初始化,即在{......}中对其进行初始化,这种初始化也是在新类的构造器被调用之前就已经进行了。
下面的例子展示了组合的使用以及各种初始化方式:
输出结果为:
可以看到,显式实例初始化和定义时初始化都发生在构造器调用之前,他们两的初始化顺序取决于位于代码中的顺序。而惰性初始化则发生在构造器调用之后。
二.继承
继承是按照现有类的类型来创建新类,无需改变现有类的形式并采用现有类的形式在新类中添加代码。新类表现出继承现有类的形式,其中的大部分工作都由编译器来完成,我们只需要完成部分功能代码的编写即可。继承是面向对象编程的基石之一,也是所有OOP和java语言中不可缺少的一部分。当我们创建一个类时,总是在继承,因为除非已经明确指出要从其他类继承外,都是在隐式的继承java的