继承、接口与多态
继承用 extends 表示“是一种”;接口用 implements 描述可提供的能力。Java 类只能直接继承一个类,但可以实现多个接口。
interface Printable {
String format();
}
class Invoice implements Printable {
public String format() {
return "invoice";
}
}
static void print(Printable value) {
System.out.println(value.format());
}
print 依赖接口而非 Invoice 的具体类型,因此未来可传入其他实现。这就是多态:同一接口引用在运行时调用实际对象的实现。
只有确实存在稳定的“is-a”关系才使用继承。复用代码时,组合(把另一个对象作为字段)通常比深层继承更灵活。重写父类方法时使用 @Override,让编译器帮助检查签名。