抽象、封装、继承、多态

抽象

抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。

下面是抽象到封装的过程

如果不考虑实际的情况下
人的定义:有嘴、有脚、有眼睛、有耳朵、会吃饭、会跑。

动物的定义:有嘴、有脚、有眼睛、有耳朵、会吃饭、会跑、有毛。

因此猴子和猩猩即属于动物也属于人,人和动物(也就是我们所说的类class)。

封装是按照一定的规则对共同特征量的组合。

抽象是对共同特征量的抽取。

封装

封装意味着把对象的属性和方法结合成一个独立的系统单元,并尽可能隐藏对象的内部细节。

封装是面向对象思想描述的基础,从此程序员面对的就不再是许多复杂的函数和过程实现,而是极少数具有行为能力的个体实例。

举例来说明一下,比如相思鸟和乌鸦,我们在抽象时,我们忽略那些比如嘴不一样,而我们只在意它们都是有嘴的:mouth;我们忽略它们羽毛颜色的不一样,而只在意它们的羽毛是有颜色的:color;然后我们抽象出嘴、羽毛颜色等特点。

然后我们通过抽象出的这些特点,将它们封装成鸟类Bird,这就是封装。

继承

子类对象拥有与其基类全部相同的属性和方法,成为继承。

还拿这个图解释

继承是因为父类的所有特征量都符合子类,而子类又包含父类没有的特征量,因此子类自身保留父类没有的特征量,与父类共同的特征量通过继承父类获得。

如:

因为猴子有尾巴,但是动物不包含尾巴,人不包含尾巴和毛,此时想表达猴子,需要创建一个猴子类保留动物或者人不包含的特征量,再继承动物或者人;

Class Animate{

......

}

Class People {

......

}

猴子表达方式:

 class Monkey extends Animate {

  定义尾巴特征量

}

或者

 class Monkey extends People {

  定义尾巴特征量

  定义毛特征量

}

多态

多态是指再基类中定义的属性和行为被子类继承后,可以具有不同的而数据类型或者表现行为等特性。

比如猴子和猩猩都继承了动物类但是在跑方式不同,因此跑方法的实现自然也是不同,子类根子自身自由的特有方式实现了特征量。

猜你喜欢

转载自blog.csdn.net/sunboylife/article/details/130603058
今日推荐