封装
封装就是把对象的属性和操作集成为一个整体,对外隐藏内部细节。可以用访问修饰符来限制访问。
封装的优点(为什么要封装):
- 代码复用
- 提高安全性:防止篡改
- 高内聚低耦合:利于代码维护和修改。
为什么追求高内聚低耦合(优点)?
现在代码都是分模块实现,每个模块完成独立的功能,出现问题也好排查。模块间越独立,往往意味着模块内联系越紧密,封装后更容易隐藏细节
封装下的访问控制
Java通过四种 访问控制符 来实现封装,其访问权限如下:
- private:只允许本类访问
- protected:本类及其子类可以访问
- public:本项目下所有的类都可以访问
- default:同一个包中的类可以访问
继承
继承使子类具有父类的属性和方法,并可以按自己的需求进行扩展(就是多态范畴了)。Java不支持多继承。
继承的优点(为什么要继承):
- 代码复用
- 为多态提供条件
继承中的访问控制
一句话:子类不能比父类有更严格的访问权限。如果父类严格到private,那就不允许被继承了。
要点
构造函数、析构函数不能被继承
多态
多态是指父类中的行为可以在其多个子类中有不同的表现。也就是说子类可以按照自身需求重写父类中的方法,使其拥有不同于父类和其它子类的表现。
多态存在的三个必要条件
- 要有继承
- 要有重写
- 父类引用指向子类对象。
实现多态的方法
父类引用指向子类对象后,用父类引用调用子类重写的方法,多态就出现了。
要点
- 多态体现在重写上,而重载不属于面向对象中多态的范畴,因为重载概念在非面向对象中也存在。
- 多态是方法的多态,不是属性的多态。多态与属性无关,也就是说与方法有关,与变量无关。