在理解了type-check只负责check static 而不check dynamic之后感觉世界突然明朗。
第二题之前一直不理解什么叫typecheck unsound rule but generate an error at runtime.
就是declare type为B, 但是实际造了一个A object出来,这样这个Obj里其实没有bond() 这个function。
例题:
B 实际的dynamic type= Int[]
然后runtime里assign String to int[] arr, 会报错。
runtime checking dynamic type is actually expensive.