采取以下代码:
IFoo foo = new FooImplementation();
标识符foo
有两种类型:
IFoo
- 这是编译器将强制执行的类型。我将只能调用属于IFoo
合同一部分的方法,否则会出现编译器错误。FooImplementation
- 这是运行时已知的类型。我可以在运行时向下转换foo
为 aFooImplementation
,然后调用FooImplementation
.
我的问题:这两种类型的正确术语是什么。我可以在学校发誓,我们被教导这IFoo
是标识符的静态类型和动态类型,但在谷歌上进行大量搜索后,我似乎找不到任何对此的参考。FooImplementation