面试_java_Java三大特性-封装、继承、多态

222 阅读2分钟

封装

封装就是把对象的属性和操作集成为一个整体,对外隐藏内部细节。可以用访问修饰符来限制访问。


封装的优点(为什么要封装):

  • 代码复用
  • 提高安全性:防止篡改
  • 高内聚低耦合:利于代码维护和修改。


为什么追求高内聚低耦合(优点)?

现在代码都是分模块实现,每个模块完成独立的功能,出现问题也好排查。模块间越独立,往往意味着模块内联系越紧密,封装后更容易隐藏细节



封装下的访问控制

Java通过四种 访问控制符 来实现封装,其访问权限如下:

  • private:只允许本类访问
  • protected:本类及其子类可以访问
  • public:本项目下所有的类都可以访问
  • default:同一个包中的类可以访问




继承

继承使子类具有父类的属性和方法,并可以按自己的需求进行扩展(就是多态范畴了)。Java不支持多继承。


继承的优点(为什么要继承):

  • 代码复用
  • 为多态提供条件


继承中的访问控制

一句话:子类不能比父类有更严格的访问权限。如果父类严格到private,那就不允许被继承了。



要点

构造函数、析构函数不能被继承





多态

多态是指父类中的行为可以在其多个子类中有不同的表现。也就是说子类可以按照自身需求重写父类中的方法,使其拥有不同于父类和其它子类的表现。


多态存在的三个必要条件

  • 要有继承
  • 要有重写
  • 父类引用指向子类对象。


实现多态的方法

父类引用指向子类对象后,用父类引用调用子类重写的方法,多态就出现了。



要点

  • 多态体现在重写上,而重载不属于面向对象中多态的范畴,因为重载概念在非面向对象中也存在。
  • 多态是方法的多态,不是属性的多态。多态与属性无关,也就是说与方法有关,与变量无关。