接口和抽象类不正确吗? (至少标出两个答案)
一个。抽象类支持继承关系而不是实现关系。
湾接口支持实现关系,但不支持继承关系。
℃。 Abstract类和Interface都支持继承关系。
d。以上所有陈述都是正确的。
我对答案有点困惑,任何人都可以帮助我。我猜是a,b,d
答案 0 :(得分:2)
你设定的问题是如此严厉,如果没有进一步的定义,它就没有任何合理的正确答案。正如其他人指出的那样,选项(d)带来了逻辑上的不一致。尽管如此,这个问题充其量只是含糊不清。
继承和实现是二元关系。因此,抽象类或接口是否支持它们没有单一的答案。相反,你必须要问:每个关系(继承,实现)中的每个分类器(抽象类,接口)可以扮演什么角色?为简单起见,我们在两种情况下都将角色称为“父”和“子”。在语义上不正确,但对我们的目的来说足够好。为避免疑问:
最后,我们需要定义“继承”和“实现”的含义。由于您已将其标记为java,因此我们可以假设“继承”表示“扩展”,“实现”表示“实现”。但是,这对于继承来说是一个非常值得怀疑的定义 - 通常意味着实现继承。与Java的“扩展”不同的语义。
行。所以现在我们可以定义一个真值表,每个分类器可以扮演哪些角色。
| Inheritance | Realisation |
|parent | child | parent | child |
---------------|-------|-------|--------|-------|
Abstract Class | T | T | F | T |
Interface | T | T | T | F |
-------------------------------------------------
由此,我们可以看到:
另请注意,如果“继承”表示“实现继承”而不是“扩展”,则表格会有所不同。
现在让我们看一下你问题中的选项
一个。抽象类支持 继承关系但不是 实现关系。
如果没有定义“支持”的含义,我们不能说这是真还是假。抽象类同时支持继承角色,因此我们可以声明第一个子句为true。但是它们只支持一个Realization角色。这是否意味着他们支持或不支持它?除非“支持”被明确定义为“完全支持” - 两种角色 - 或“部分支持” - 至少一个角色,否则没有答案。
列表中的选项(b)也存在类似的歧义。
然而,选项(c)是可判定的。接口和抽象类都支持继承角色,因此(c)是正确的。注意,如果“继承”意味着“实现继承”而不是“扩展”,那么(c)是错误的。
总之:如果没有正确定义问题,就无法回答。
第h
答案 1 :(得分:1)
哦,回忆......这是java认证的程序员吗?
一个。真正
湾假
C。真正
d。 wtf是对的吗?对或错?我认为它......假。
你必须否定回答者...
有关abstract classes和interfaces