【问题标题】:Difference between superclass and supertype and the difference between subclass and subtype超类和超类的区别以及子类和子类的区别
【发布时间】:2013-02-25 06:56:15
【问题描述】:

它们是可互换的术语吗?你能给出正式的定义和例子吗?

【问题讨论】:

  • 它们可以互换,就像您的父亲和儿子一样。

标签: oop class polymorphism


【解决方案1】:

这两个术语(超类和超类型)是相关的,但它们并不完全可以互换。

只有超类,而其他分类器超类。由于 Class 也是 Classifier,所以超类始终是超类(因为超类重新定义了分类器之间的一般关联),但反之则不然。

例如,Java 中的基本类型long is defined 作为int超类型。由于原始类型不是类,long 不是int 的超类。

另一个例子:在UML中,组件和接口不同于类(它们都是分类器),那么说“组件的超类”而不是“组件的超类”是不正确的。

【讨论】:

    【解决方案2】:

    说 A 是 B 的子类只是断言 A 是使用继承形成的。 如果说 a 是 B 的子类型,则表明 A 保留了 B 中所有操作的含义。

    可以形成不是子类型的子类;并且(至少在某些语言中)形成不是子类的子类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      相关资源
      最近更新 更多