类的再讨论 2000-12-23 00:00:00·
Adding翻译·yesky
1 2 3 下一页 b>类静态方法和数据
面向对象语言一般都允许在类中包含一些静态方法和数据。类的静态方法不仅可以用于整个类的本身,而且还可用于该类的对象中,而类静态数据只能在多个对象之间实现共享,不能被复制。
C++中类静态方法和数据是依靠关键字static来说明的,类的静态数据还必须在声明进行初始化,否则就会出错。
Object Pascal仅仅有类的方法,是用class关键字来说明的,类的数据是通过在该类定义的单元中添加的私有性全局变量来取回的。
Java使用与C++相同的关键字static来定义静态方法和数据的。由于全局函数的存在,使得静态方法变得非常常用。静态数据能直接在类的声明中直接初始化。
类和继承
类的继承是面向对象的最基本特征。通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。不同的面向对象语言对基类和派生类有不同的术语。
C++中,使用关键字public、protected和private来定义不同继承的行为,其中protected和private用来隐藏继承的方法或数据。尽管public继承行为是最常用的,但是C++却将private定为默认的继承行为。在Java,
C++和Object Pascal中,只有C++可以有多重继承,例如:
class Dog: public Animal {
...
};
在Object Pascal中,没有相应的关键字来说明继承,而是直接将基类在类名后用圆括号括起来。这种语言只支持类似C++的共有型继承。例如:
type
Dog = class (Animal)
...
end;
Java使用extends关键字来说明类似C++的共有型继承,而且只有这种继承行为。Java不支持多重继承,它的类有一个公共的基类。例如:
class Dog extends Animal {
...
}
需要说明的是,对于C++和Java来说,继承类的构造函数都有非常复杂的结构。因此,我们下面来着重讨论公共基类、基类的访问、多重继承、接口、后联编以及其他相关内容。
1 2 3 下一页 |