java IS-A关系考试题混淆

标签 java inheritance polymorphism scjp

来自 MasterExam:

Which statements are true? (Choose all that apply)

A. is-a relationship always rely on inheritance
B. is-a relationship always rely on instance variables
C. is-a relationship always require at least two class types
D. is-a relationship always rely on polymorphism
E. is-a relationship are always tightly coupled

正确答案:A、C、D

我不明白 A、C 或 D 中的任何一个是正确的。

一个Object对象就是一个Object。一个字符串对象是一个字符串。这些语句中的每一个都只有一个类类型,并且不适用继承或多态性。

我的理由是错误的还是答案不正确?

最佳答案

“关系”是指两个类之间的关系。 is-a 关系是一种使用继承的关系(与使用组合的 has-a 相反)。例如,一个字符串是一个对象。一个类不能从自身继承,这意味着 C。作为旁注,一个类可以与自身具有组合(has-a)。例如。一个 Person 可以有另一个 Person 作为母域。

只要有继承,子类的实例就可以用作父类(super class)的实例。那就是多态,也就是说D也是对的。

关于java IS-A关系考试题混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3237716/

相关文章:

java - 编辑代码以在 UI 线程上运行?

ruby-on-rails - Rails 关注 class_macro 和继承类的参数

c++ - 有没有办法拥有更严格的泛型仿函数参数?

java - 如何使用java代码制作service=wfs&version=1.1.0&request=DescribeFeatureType

java - 在共享库中为 JPA 实体(域类型对象)创建基类的缺点

c++ - 这是糟糕的代码吗?

c++ - 如何通过交叉广播恢复接口(interface)

c++ - 具有 invoke_result 的重载命名非成员函数的返回类型

java - 如何在 Java 8 的 map 中展平列表

python - 在 Python 中使用 "self"访问父方法的问题