Java的instance关键字可以实现"运行时类型识别"(Run-time type identification, RTTI),也就是说可以通过instanceof关键字判断某个对象是否时没个类的实例,例如:
class ClassA {
ClassA() {
}
}
class ClassB {
ClassB() {
}
}
public class MyInstanceOf {
public static void main(String[] args) {
sayClass(new ClassA());
sayClass(new ClassB());
}
public static void sayClass(Object o) {
if (o instanceof ClassA)
System.out.println("This is ClassA");
if (o instanceof ClassB)
System.out.println("This is ClassB");
}
}
输出结果:
This is ClassA
This is ClassB
通过instanceof关键字就可将Extened Class中一些差异极小的方法放在Base Class中实现,进而实现代码精简和整洁.但不可滥用,在多数情况下我们可以通过多态(Polymorphism)实现相同的功能.