您的位置: 首页 计算机类> 水平考试> 复习资料> 软件设计师
公务员考试辅导课程

软件设计师知识点:面向对象语言概论(一)

发布时间:06-20

来 源:

页 数:2页

上一篇:软件设计师知识点:面向对象语言概论(二)

下一篇:软件工程、计算机网络和专业英语考试指导


3. 子类和继承 (Subclassing and Inheritance

子类和一般的类一样,也是用来描述对象的结构的。但是,它是通过继承其它类的结构来渐进式地实现这个目的。

父类的属性会被隐式地复制到子类,子类也可以添加新的属性。在一些语言中,子类甚至可以override父类的属性(通过更改属性的类型来实现)

父类中的方法可以被复制到子类,也可以被子类override.

一个子类的代码的示例如下:

subclass reCell of cell is

            var backup: Integer := 0;

            override set(n: Integer) is

                        self.backup := self.contents;

                        super.set(n);

            end;

            method restore() is

                        self.contents := self.backup;

            end;

end;

对有subclass的方法解析,根据语言是静态类型还是动态类型而有所不同。

在静态类型的语言(如C++, Java)里,父类,子类的method suite的拓扑结构在编译时就已经确定,所以可以把父类的method suite里的方法合并到子类的method suite中去,方法解析时就不用再搜索这个method suite的树或图了。(译者按:C++的vtable就是这种方法)

而对于动态类型的语言,(也就是说,父子类的关系是在运行时决定的),method suite就无法合并了。所以,方法解析时,就要沿着这个动态生成的树或有向图搜索直到找到合适的方法。而如果语言支持多继承,这个搜索就更复杂了。





Google
 

     

考试信息

热点排行

最近更新

考试辅导

网校辅导

面授培训

©2005-2006 100ksw.com 版权所有 皖ICP备06013378号