一、复用类的目的
使用类而不破坏现有程序代码。
二、复用类的方式
1.组合
2.继承
“is-a”(是一个)的关系是用继承来表达的。 “has-a”(有一个)的关系是用组合来表达的。三、继承
继承中,构建过程是从基类“向外”扩散的,所以基类在子类构造器可以访问它之前,就已经完成了初始化。
如果没有默认的构造器,或者说子类想显式的调用基类中带参数的构造器,就必须要借助关键字super显式的编写调用基类带参的构造器。并且调用基类的构造器代码需要编写在子类构造器中的第一行。
在面向对象编程中,应当慎用继承。
当需要使用继承时,可以判断是否需要从新类向基类进行向上转型。如果必须向上转型,继承是必要的;如果不需要,则好好考虑是否需要继承。
通过下例来了解包括继承在内的初始化全过程。class Insect { private int i = 9; protected int j; public Insect() { System.out.println("i="+i+" j="+j); this.j = 11; } private static int init1 = printInit("static Insect init1 initialzed"); static int printInit(String str){ System.out.println(str); return 33; }}public class Beetle extends Insect { private int a = printInit("Beetle a initialzed"); public Beetle() { System.out.println("a="+a); System.out.println("j="+j); } private static int init2 = printInit("static Beetle init2 initialzed"); public static void main(String[] args) { System.out.println("main method...."); Beetle b = new Beetle(); }}结果:
static Insect init1 initialzedstatic Beetle init2 initialzedmain method....i=9 j=0Beetle a initialzeda=33j=11