Java面向对象三大特性:封装、继承、多态
封装:
,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,比如
人(类){
身高(属性);
体重(属性);
性别(属性);
吃饭(行为);
说话(行为);
跑步(行为);
}
这样就是把几个共性的东西封装到一个类之中了。
继承:
教师(类)继承了人(类){
身高(属性);
体重(属性);
性别(属性);
吃饭(行为);
说话(行为);
跑步(行为);
教书(教师的行为)}
教师extends人{
教书(行为)
}
在这里,由于封装,使得有共性的一类事物的所有信息都被归于一类之中,有些事物有共性,但还存在区别,比如教师有自己的特性——教书
我们就不用再定义一遍人的属性与方法,只需继承就人这一个类,在这基础上拓展教师教书的专有行为即可。
多态:
就是站在抽象的层面上去实施一个统一的行为,到个体(具体)的层面上时, 这个统一的行为会因为个体(具体)的形态特征而实施自己的特征行为.
假设有学生和老师两个类,他们都继承了人的特性(属性和行为),也有自己的行为学生听课,老师教书,站在抽象的角度上,也就是人的角度上讲,
也就是人在教书,人在听课,就显得比较怪异,对于行为主体,我们用抽象层次的人来表示,对于行为本身,用的是具体的”教书“,”听课“
解决的方法就是把行为‘’教书”,“听课”也抽象化为做事,这样就可以表示为“人在做事”。
当调用"人"去"做事"的时候,如果这个人是教师,那他所做的事实际上就是"教书",如果这个人是学生,那他所做的事实际上就是"听课".
也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是"授课"与"听课".这就是多态的体现。
简单地说:
能站在抽象的角度去描述一件事, 而针对这件抽象的事, 对于不同个体(具体)又能找到其自身的行为去执行, 这就是多态.