本帖最后由 liurongzhi1991 于 2015-4-27 21:14 编辑
从哲学角度阐述子类与父类之间的关系 继承让类与类之间产生了关系,那么子类的父类的关系到底是什么呢,是一种子类属于父类吗,接下来从两个方面阐述: 一.从范围角度来说: 子类为什么要继承父类,因为父类中有子类所需要的特性 而为了提高代码的简洁性。在定义子类属性的时候,不必把所有子类的属性都一一定义出来,因为其具有共性,所以提取这些共性的代码,封装成父类,子类继承之后,便拥有了,这些子类所共同拥有的属性,也提高了代码的复用性。 在子类继承了父类之后,其还可以定义一些这个子类所特有的属性和行为,这个特有的属性行为是属于这个子类的,区别于其他子类的属性行为,不可以从所有的子类中提取出的,然而从从父类到子类是一个不断具象化的过程,如果说父类是抽象的,那么子类就是在不断的具象。父类只是定义了这一类事物的共有属性,基本的框架和基本的行为,如:若animal是一个父类,那么其子类不仅具有了父类的属性和行为,如:行为有:跑,睡觉等,属性:眼睛,耳朵,四肢等,而继承了animal的子类,他还有自己的特有属性和行为,如 dog,它是animal的一个子类,他不仅拥有animal中的行为:跑,睡觉,还有自己的特有行为:如:汪汪叫,看家。以及特有属性:皮毛,爪子等(而animal中的其他子类如鱼。就不会拥有狗的属性) 从父类到衍生出特有属性和行为的子类,是一个不断具象的过程, 在这个具象的过程中,其具有了特有的属性行为,但是这也是一种枷锁,或者成为局限,属性和行为是对一类事物的描述,属性越多,描述的月具体,其所包括的范围也会越小,animal是包含了所有动物,如:猫,鱼,鸟,虫等,其属性是对所有动物的共同属性的抽取,而dog由于是继承了animal,他不仅具有animal中的基本属性,还有特有属性,它对dog这一类事物要比animal描述要详细的多,这就是越多的属性和行为对其的局限性越大,其范围也就越小。所以在范围上,父类是包含子类的。 二.从行为属性角度来说: 所谓行为,即是功能,上述中,animal中只有跑,睡觉的行为,而在dog这个类中不仅包含了跑和睡觉的行为,还有汪汪叫,看家等行为,这种行为是dog类所特有的,是animal在不断具象过程中产生的,所以dog的类中所包含的行为属性,包括了animal中的行为属性和自己特有的行为属性,或者说是功能要远远多于animal,这也就是说,在功能上,子类的作用是包括父类的。 综上:单纯的说父类包含子类的观点片面的。
|