来自MasterExam:
哪些陈述属实? (选择全部 适用)
A
。是一种永远依赖的关系 继承
B
。是一种永远依赖的关系 实例变量
C
。是一种关系总是需要在 至少两类课程D
。是一种永远依赖的关系 多态性
E
。是一种关系永远 紧密耦合
正确答案:A,C,D
我看不出A,C或D中的任何一个是正确的。
Object对象IS-A对象。 String对象IS-A String。每个语句中只有一个类类型,不适用继承或多态。
我的理由是错误还是答案不正确?
答案 0 :(得分:4)
“关系”是指两个类之间的关系。 is-a关系是一种使用继承的关系(与例如has-a相对,它使用组合)。例如,String是一个Object。一个类不能从它自身继承,这意味着C.作为旁注,一个类可以有自己的组合(has-a)。例如。一个人可以让另一个人作为母亲。
只要有继承,子类的实例就可以用作超类的实例。这是多态性,这意味着D也是对的。
答案 1 :(得分:3)
A。字符串是一个字符串是......一个被认为是显而易见的重言式。但是,查看API文档,您会发现java.lang.String
也是java.lang.Object
。实际上,所有Java类都继承自java.lang.Object。它们继承了Object的基本属性并添加了自己的其他属性。这就是关系的全部意义。
C。同样,关于任何物体本身的重言式是禅宗佛教徒感兴趣的,但不是语言设计师和其他计算机科学家。因此,要建立“is-a”关系,您需要两个不同的类。
D。我在这里不太确定。如果我被问到,我会说多态性取决于“是 - ”关系,而不是相反。
答案 2 :(得分:1)
您的理由略有偏差,因为此关系适用于类,而不适用于对象。
字符串IS-A对象,因为String
继承自Object
。同样地,FileOutputStream
IS-A OutputStream
IS-A Object
。
IS-A是类之间的关系,类和对象之间没有。
答案 3 :(得分:1)
你需要看到它有点不同:
试着这样看,它现在应该变得更加清晰。
答案 4 :(得分:1)
我认为A& C现在已经非常清楚......关于D.虽然技术上可能扩展一个没有实例行为或属性的类...(空白或者可能只有静态元素)......但原则上这种失败“扩展”类的目的是为了从继承树上方的类继承行为/功能。 所以,我会说选项D.是正确的(几乎):)(如果我们不太技术).btw这可能是一个有趣的讨论。
答案 5 :(得分:0)
对不起,你的理性错了。他们在谈论两个不同的阶级。例如,String是一个Object。