这是类在现实世界中的一个简单的例子,它是某一类叫做Ball的物品的一个蓝图。
每当这个类被用来创建一个实例时,新创建的ball将会具有形状、材料和颜色等属性。每一个ball也都可以访问那些定义了动作和行为的方法。可以看到,Ball所具有的方法定义了它的实例ball可以被扔、被抓住或反弹。注意到Ball这个词本身是大写的。 按照惯例,类名是需要大写的,而属性和方法名通常是大小写相间的。每一个被创建的ball被称为Ball类的一个实例。你也可以认为对象和实例这两个术语是可以相互替换使用的。
你可以为一个类创建一个或多个实例,每一个实例可以具有各自的属性值并且可以具有方法中定义的行为。
这里是Ball类的三个实例
第一个ball,我将它命名为ball1,是圆的、蓝色的并且由橡胶制成。
第二个ball,命名为ball2,是椭圆的、褐色的并且由皮革制成。
第三个ball,命名为ball3,是圆的、橙色的并且由皮革制成。
在所有情况下,这三个ball都可以被扔、被抓住或反弹。
一个类通常会与其它的一些类存在着相互关系。
其中Ball类是从总体上定义各种ball的父类。
Racquetball类、 Football类 和Basketball类是 Ball的子类,用来定义某一具体种类的ball。
其中Racquetball类用来创建一个或多个racquetball,它们可以具有不同的颜色,还能以不同的速度反弹。
Football 类用来创建美式football,形状是椭圆的,可以具有不同的颜色,也可以由不同的材料制成。
可以想一下一个由皮革制成的专业的NFL橄榄球和一个由NERF材料制成的橄榄球,后者通常是为儿童准备的,所以比较柔软。
类的继承性使一个类可以扩展出另外的类。
在OOP术语中,Racquetball类、Football类和Basketball类被称为Ball类的子类或衍生类。
由于它们都是 Ball 类的子类,也可以说它们扩展了Ball类或从 Ball类继承而来。
Ball类是被扩展或被继承,所以被称为基类、父类或超类。
在图表中,你可以看到Racquetball类、Football类和Basketball类扩展了Ball类,使用了它的属性和方法。
例如,Racquetball类具有形状、材料和颜色属性,这些都是它从Ball 类继承而来。
评论