复用代码,即使用已经开发并调试好的类。组合和继承是两种实现方法。
组合语法:
在新类中创建现有类的对象。该方法只是复用了现有代码的功能,而非它的形式。
组合的例子随处可见,这里不举例说明。但书中特意强调了toString方法。
每一个非基本类型的对象都有一个toString方法,因为每一个类都是继承Object类而来的,而Object类中包含这个方法。具体需要注意的是,当你要将一个对象和字符串连接的时候,编译器会自动调用toString方法,当Object类中的toString方法不能满足要求时,则需要重写这个方法。
继承语法:
继承是所有OOP语言不可缺少的组成部分。当创建一个类时,总是在继承,因为若没有明确指出要从其他类中继承,就默认从Java的标准根类Object进行继承。
为了继承,一般的规则是将所有的数据成员指定为private,所有的方法指定为public。虽然在特殊的情况下必须做出调整,但是这的确是一个很有用的规则。
当继承类中有对基类中定义的方法修改时,欲调用基类的方法,必须加上super关键字,否则程序将产生递归。当然,继承类同样可以定义属于自己的方法。
初始化基类:
当创建了一个导出类的对象时,该对象包含了一个基类的子对象。这个子对象与直接创建的基类对象时一样的。二者的却别在于后者来自于外部,而前者来自于导出类对象的内部。
1)无参构造器下的初始化
class Art {
Art() {
System.out.println("Art");
}
}
class Drawing extends Art () {
Drawing() {
System.out.println("Drawing");
}
}
public class Cartoon extends Drawing {
public Cartoon() {
System.out.println("Cartoon");
}
}
/*
Output:
Art
Drawing
Cartoon
*/
2)有参构造器