happem

对象类的概念

继承

对象类的概念是很有用的,因为对象类可以实现用最小的代价创建许多新的对象实例。使用继承机制可使得这一概念更加有用[TAIV96]。

  继承可以在已有类上定义新的对象类。称为子类的新类,将自动包含称为父类的原始类所定义的方法和变量。子类在许多方面不同于父类:

1. 子类可以包含父类中所没有的方法和变量。

2. 子类可以通过重新定义来重载父类中任何相同名字的方法和变量。这提供了处理特例的简单有效方法。

3. 子类可以对从父类继承的方法或变量在某些方面加以限制。

继承机制是递归的,可以实现子类成为其子类的父类。这样,就建立了一种继承层次,从概上可以认为继承层次是定义了一种方法和变量的搜索技术。当一个对象收到一个消息,而执行没有在其类中定义的方法时,对象将沿继承层次向上搜索直至找到该方法。类似地,,如果一种方法的执行造成相关变量没有在该类中定义,则对象就会沿着继承层次向上搜索变量名。

多态性

多态性是一个很有趣且很有用的特性。它使得把不同实现隐藏于共同接口之后成为可能。两个多态的对象使用相同的方法名字,对其他对象呈现相同接口。例如,对不同的输出设备会有许多打印对象,如printDotmatrix、printLaser、printScreen等;或是不同类型的文件,如printText、printDrawing、print-Compound。如果每一对象包含一个称为print的方法,那么通过向合适的对象发送print消息,任何文件都可以被打印,而不必关心方法是怎样真正实现的,多态性典型地应用于一个父类的多个子类的相同方法,每个方法都有一个不同的具体实现。

将多态性与常用的标准组件编程技术进行比较是有益的。自上而下的标准组件设计的目的是要使用高层模块的固定接口实现底层模块的通用效用。可以实现一个较低层的模块被许多不同的高层的模块使用。

接口

接口使得子类对象使用父类的功能,有时需要定义一个具有多个父类功能的子类,这可能对相应产生一个子类继承多个父类。C++是一种允许多重继承的语言。然而,为简单起见,大多数现代面向对象编程语言,如java、C#和Visual Basic.NET,限制一个子类能继承一个父类。相反,接口为人所知的特征是可以实现一个类借用类中的一些功能或是借用完全不同类的功能。
源地址:http://www.lirenedu.org/index.php?ack=xinwen&id=1086 

posted on 2012-07-03 11:05 happem 阅读(302) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理