当前位置: 首页 > 面试题库 >

Java中的IS -A关系和HAS-A关系有什么区别?

黄无尘
2023-03-14
问题内容

我是JAVA的新手,刚刚开始学习IS-A和HAS-A的关系,但学到的东西不多。我想想像一下这两者有何不同以及何时应使用IS-A和HAS-A?


问题答案:

IS-A关系是继承。继承的类称为子类或子类。另一方面,HAS-A关系是组成。

在OOP中,IS-A关系是完全继承。这意味着子类是父类的一种。例如,苹果是水果。因此,您将扩展水果以获得苹果。

class Apple extends Fruit {

}

另一方面,组合意味着创建引用了其他对象的实例。例如,一个房间有一张桌子。因此,您将创建一个教室,然后在该教室中创建一个类型表的实例。

class Room {

    Table table = new Table();

}

HAS-A关系是动态(运行时)绑定,而继承是静态(编译时)绑定。如果您只是想重用代码,并且知道两者不是同一种类型,请使用组合。例如,您不能从厨房继承烤箱。厨房有HAS-A烤箱。当您感觉到存在自然关系时,例如Apple是Fruit的使用继承。



 类似资料:
  • 问题内容: public void push(E element) { if (size == elements.length) { resize(); // doubel of size } elements[size++] = element; } Java中的a 和 a或a–和–a有什么区别 谢谢 问题答案: 或是后缀运算符,表示a的值将在对表达式求值后更改。 或是前缀运算,表示a的值将在对

  • 问题内容: 我们通过将一个表的PK(作为FK)添加到 另一表来实现一对多关系。我们通过 在第三个表中添加2个表的PK来实现多对多关系。 我们如何实现IS-A关系? 实体分别是技术人员和行政人员。我 可以在表EMPLOYEE中使用一个额外的字段(id,名称,姓氏, 角色…AdminFields…,…TechFields…) 但我想探索IS-A选项。 编辑:我按照Donnie的建议做了,但没有角色字段

  • Java的(“A”)和“A”有什么区别? 为什么下面的两行给出的结果是一样的?它们之间有什么区别吗?

  • 问题内容: 正如我在标题中提到的 a + = b和a = + b以及a 和 a有什么区别?我有点困惑 问题答案: 相当于 相当于 且两者都增加1。不同之处在于,返回的是增量之前的值,而返回的是增量之后的值。 那是:

  • 例如: 上面提到的脚本用三角形给出答案,而没有双引号,它一个接一个地落在不同的线上。

  • 问题内容: 我考虑这个问题已有一段时间了,似乎找不到答案。Node.js和V8有什么关系?可以在没有V8的情况下使用Node.js吗? 问题答案: Node.js和V8有什么关系? V8是node.js内的Javascript引擎,用于解析和运行Javascript。Chrome内部使用了相同的V8引擎,以在Chrome浏览器中运行javascript。Google开源了V8引擎,node.js的