初始化而不创建实例(Eiffel)

时间:2014-02-18 23:13:03

标签: polymorphism instance eiffel

这是关于课程的BON图。

请注意,在示例中,属性未创建到实例中。在运行时a使用take_off中的b。我只是想知道如何在B_747类中初始化take_off。在我的作业中,我有一个案例,就像b := a.b c := a.c B_747 bc每个都有相同的属性,但每个属性分配不同的值。我不知道如何在没有实例化的情况下初始化属性。它说我不允许使用b.make ("abc", 123)。有人可以给我一个如何实现它的例子。另外,我不确定b:=a.b到底意味着什么。

1 个答案:

答案 0 :(得分:0)

该示例说明了其他内容,而不是对象创建。回答您的第一点,take_off无需初始化。这只是PLANEB_747类的一个功能。幻灯片表示即使静态类型aPLANE,其中take_off被声明为延迟(即没有任何特定实现),当变量附加了{{1}类型的对象时1}},它使用B_747中的功能实现。

回答你的最后一点,B_747意味着,对由表达式b := a.b计算的对象调用的要素b的结果附加到变量a 。后者可以是局部变量或当前类的属性。表达式b可以是当前类的函数,当前类的属性,当前特征的参数,当前特征的局部变量等,这取决于上下文。 a上调用的功能b可能是与a类型或该类属性对应的类的函数。