
这是一个关于类的BON Diagram。

请注意,在该示例中,属性没有被创建到实例中。在运行时,a使用b中的take_off。我只是想知道在B_747类中take_off是如何初始化的。在我的赋值中,我有一个类似于b := a.b c := a.c的情况,其中B_747 b和c都具有相同的属性,但分配给每个属性的值不同。我不知道如何在不实例化的情况下初始化属性。上面写着我不能使用b.make ("abc", 123),.Can,有人给我举个例子,说明如何实现这一点。另外,我也不太确定b:=a.b到底是什么意思。
发布于 2014-02-19 14:07:09
该示例说明了其他事情,而不是对象创建。回答你的第一点,take_off不需要初始化。这只是在B_747中生效的类PLANE的一个特性。幻灯片中说,尽管a的静态类型是PLANE,其中take_off被声明为延迟的(即没有任何特定的实现),但当变量附加了B_747类型的对象时,它将使用B_747的功能实现。
回答您的最后一点,b := a.b意味着在由表达式a计算的对象上调用的特征b的结果被附加到变量b。后者可以是局部变量,也可以是当前类的属性。根据上下文,表达式a可以是当前类的函数、当前类的属性、当前特征的自变量、当前特征的局部变量等。在a上调用的特征b可以是对应于a的类型的类的函数或该类的属性。
https://stackoverflow.com/questions/21867560
复制相似问题