August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
我们能否证明(或反证)接口具有真实的is-a关系吗?在Java(C#或VB)可以使用编译器来证明。请看以下代码:
当编译器编译这段代码时,会抛出以下错误:
显而易见,狗并不是头。不仅我们知道,而且编译器也同意这一点。然而,以下代码如预期一样工作:
这是一个真正的继承关系,所以不必惊奇这段代码可以通过编译,因为狗就是哺乳动物。
现在我们可以对接口进行测试。接口是不是真正的is-a关系呢?编译器是这样认为的:
这段代码工作正常。所以我们可以安全地说狗是有名字的实体。这是简单但有效的证据,继承和接口都构成is-a关系。如果接口使用得恰当,接口之间的关系,更像是“表现得像”的关系。你可以有实现一个“is-a”类型的数据接口,但是更多时候,你会选择前者。
Nameable接口 ...
Read now
Unlock full access