2009-06-26 54 views
4

考虑这个类层次结构:实现接口的类和接口之间是否有任何关系?

  • Book extends Goods
  • Book implements Taxable

我们都知道,有一个子类,它的超(IS-A)之间的关系。

问:BookTaxable之间有“is-a”之类的关系吗?

很好的答案,但你说“是”的也BookTaxable之间的关系“是一个”是之间的关系和接口是不是一类!

+1

各种各样的欺骗:http://stackoverflow.com/questions/766106/test-if-object-implements-interface/ 768633 – cgp 2009-06-26 16:59:50

+1

如果我们总结愚蠢,那么会有一段时间不会有新的问题被允许。 – geowa4 2009-06-26 17:03:15

+0

我没有投票结束,我只是觉得案件足够接近,值得关注。 – cgp 2009-06-26 17:10:38

回答

8

是的。关系完全相同

本书也是应纳税的。

编辑

接口是恰好符合Java的(也可能是C#我不知道)interface关键字的神器。

在OO接口是一类是“提交”的操作集,仅此而已。就像对象类和客户端之间的契约。

没有interface关键字的OO编程语言仍然具有类接口OO概念。

3

“表现得像......”

这就是我所说的。不是东西,而是表现得像某种东西。或者作为替代品“可以做某事”,但这比行为更具体。

5

那么有“支持的操作”。就我个人而言,我发现“is-a”,“can-do”等助记符非常有用。我更喜欢根据类型允许的方式来考虑,无论它们是专门化现有行为还是自己实现行为。类比抽象等类似的东西往往是漏洞。如果您知道接口继承和实现继承之间的区别,您可能不需要任何额外的措辞来表达它。

1

这应该这样做:

public static boolean implementsInterface(Object object, Class interf){ 
    return interf.isInstance(object); 
} 

例如,

java.io.Serializable.class.isInstance("a test string") 

计算为真。

来自:Test if object implements interface

3

的关系会像说:'工具'

这些关系名称从句子使用的春天。 “书”是 - 一个“货物”可以写没有引号和连字符,它是有道理的。同样,Book'implements'Taxable可以不带引号。

1

什么是所有的兴奋?多个问号和多个感叹号?

即使Taxable是一个接口,它是否会打扰您,我们可以说Book是Taxable,请冷静下来。

对于一个类与接口和超类的关系,语言中有不同的关键字,但这种关系的概念性质是相同的,因此使用相同的英文术语来描述它是完全合理的。一本书是应税的,就像一本书是一件好事。为了使术语更接近,一本书是一个TaxableItem。没关系。

0
Book implements Taxable 

这里也BookTaxable之间的关系是

书 '是' 应纳税

Refer this。你可以看到它说

当我们谈论继承最常用的关键字将延伸工具。这些词将决定一个对象是否是另一个对象类型。

2

当我们说一个类扩展另一个类时,它具有强大的关系,称为“继承”。这意味着当一个孩子延伸父母时,孩子应该能够像马一样从父类继承某种动物。马正在继承动物的某些属性。但是当一个类实现另一个类时,那么子类正在尝试执行一个契约,不需要继承任何父母在契约之后的任何东西,为什么接口的所有方法默认为抽象的,但是你可以在类中提供一些具体的方法(用于继承子类),并且可以使一些抽象很好。

所以对我来说是扩展继承和接口在实施contract.hope这是令人满意的

相关问题