1. Interface 可以用来持有任何implementation该Interface的对象,这和父类可以持有子类是一样的。
2. 任何需要一个类A的方法,你都可以把A的子类作为A的替代品来使用,当然有关具体的方法覆盖引起的问题,你要自己care
3. 一旦强制转换成功了,你就可以使用任意的属于转换后对象的方法,举例来说:
> A a = (A)b //把b实例转换成A对象的实例
> a.methodOfA() // 因为虽然是b,但是你告诉编译器我要把它当做a来用了,属于A的方法自然可以调用
注意: 转换是否成功不属于编译器的管辖范围,不合适的类型会让你得到运行时异常