面向对象3大特性的简单理解
封装,继承,多态
1.封装:
类的内部结构不会被随意破坏,而且外部在调用时不需要了解内部结构,
只需要了解使用接口就可以了。
如:private int age;//外部无法直接访问
//但能通过方法来访问,并且还能增加一些逻辑判断
public void getAge(){
}
2.继承:
代码的重复使用
Java代码: public class Student extends Person{}
3.多态:
子类对象可以代替父类对象来使用
在后面的面向接口编程,体现的更加淋漓尽致
Java代码: public class Student extends Persion;
Persion p = new Student();//编译时,p为Persion类型;运行时,p为Student类型
注意:子类虽然能够代替父类,但代替后,就不能再使用子类中新增的方法了,
因为系统认为父类中没有的方法不能调用;
但如果调用的是同名的方法,并且子类重新过了,那么将调用子类重写过的方法,叫做虚函数调用
这就是编译时与运行时类型的不同