抽象
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。
下面是抽象到封装的过程
如果不考虑实际的情况下
人的定义:有嘴、有脚、有眼睛、有耳朵、会吃饭、会跑。
动物的定义:有嘴、有脚、有眼睛、有耳朵、会吃饭、会跑、有毛。
因此猴子和猩猩即属于动物也属于人,人和动物(也就是我们所说的类class)。
封装是按照一定的规则对共同特征量的组合。
抽象是对共同特征量的抽取。
封装
封装意味着把对象的属性和方法结合成一个独立的系统单元,并尽可能隐藏对象的内部细节。
封装是面向对象思想描述的基础,从此程序员面对的就不再是许多复杂的函数和过程实现,而是极少数具有行为能力的个体实例。
举例来说明一下,比如相思鸟和乌鸦,我们在抽象时,我们忽略那些比如嘴不一样,而我们只在意它们都是有嘴的:mouth;我们忽略它们羽毛颜色的不一样,而只在意它们的羽毛是有颜色的:color;然后我们抽象出嘴、羽毛颜色等特点。
然后我们通过抽象出的这些特点,将它们封装成鸟类Bird,这就是封装。
继承
子类对象拥有与其基类全部相同的属性和方法,成为继承。
还拿这个图解释
继承是因为父类的所有特征量都符合子类,而子类又包含父类没有的特征量,因此子类自身保留父类没有的特征量,与父类共同的特征量通过继承父类获得。
如:
因为猴子有尾巴,但是动物不包含尾巴,人不包含尾巴和毛,此时想表达猴子,需要创建一个猴子类保留动物或者人不包含的特征量,再继承动物或者人;
Class Animate{
......
}
Class People {
......
}
猴子表达方式:
class Monkey extends Animate {
定义尾巴特征量
}
或者
class Monkey extends People {
定义尾巴特征量
定义毛特征量
}
多态
多态是指再基类中定义的属性和行为被子类继承后,可以具有不同的而数据类型或者表现行为等特性。
比如猴子和猩猩都继承了动物类但是在跑方式不同,因此跑方法的实现自然也是不同,子类根子自身自由的特有方式实现了特征量。