复用类:
Compostion:在新类创建旧的类的对象,所复用的只是代码的功能不是它的形式。
Inheritance:全盘接受旧类的形式,添加新的代码。
Compostion的语法:
介绍一个特殊的方法toString()所有非primitive对象都有这个方法,当编译器需要一个string而它却是一个对象的时候,编译器会自动调用这个方法。
Inheritance的语法:
基类会在派生类的构造函数访问它之前先进行初始化。构造函数分为带参数和不带参数。如果调用的基类构造函数是带参数的,你必须使用super关键词以及何时的参数明确的调用基类的构造函数。
使用合成还是继承:合成用于新类要使用旧类的功能,而不是其接口的场合。把对象嵌进去,用它来实现新类的功能,但是用户看到的是新类的接口,而不是嵌进取的对象的接口。因此,你得在新类里嵌入private的旧类对象。继承所表达的是“is-a”的关系,而合成表达的是“has-a”的关系。
上传:把派生类传给基类就是沿着继承图往上传。上传总是安全的,因为你把一个较具体的类型转换成为一般的类型。
―――――――――――――――――――――――
class Instrument {
public void play() {System.out.println("play");}
static void tune(Instrument i) {
i.play();
}
}
public class Wind extends Instrument {
public static void main(String[] args) {
Wind flute = new Wind();
Instrument.tune(flute);
}
}
―――――――――――――――――――――――
Final关键词:(不允许改动)
Final data:
Final reference:初始化一旦将reference连到了某个对象,就不能在指向别的对象了。
Final method:为方法上“锁“,禁止派生类进行修改。
Final class:禁止了继承,覆血方法不可能了。
初始化和类的装载:
完善中。