一、封装
含义
利用抽象数据类型将数据和基于数据的操作封装成一个独立实体。系统内的其他对象只能通过包裹在数据外面已经授权的操作和这个封装的对象进行交互。用户无需知道对象的细节,即可通过该对象对外提供的接口来访问该对象。
优点
- 减少耦合
- 类内部结构可自由修改(无需修改客户代码)
- 对成员进行更精确的控制
二、继承
含义
以已存在的类的定义为基础建立新类的技术,新类的定义可以增加新的属性或功能,也可以使用父类的功能,但不能选择性的继承父类。
子类不能继承
父类private的属性和方法、父类构造器(JAVA中编译器会默认给子类调用父类的构造器)
protected关键字
类用户不可以访问。继承该类的子类或其他任何位于同一个包的类可以访问。
三、多态
含义
一个引用变量指向哪个类的实例对象,以及该引用变量发出的方法调用是哪个类的实现方法,在程序编译/运行期间才能决定。
Java实现多态的必要条件
- 继承:必须存在有继承关系的父类和子类
- 重写:子类对父类中某些方法进行重写,调用这些方法时就会调用子类的方法
- 向上转型:将子类的应用赋给父类对象
多态又分为编译时多态和运行时多态
编译时多态
编译期间决定目标方法,通过重载实现(方法名相同,参数不同)
运行时多态
运行期间决定目标方法,通过重写(同名同参)和继承实现,由JVM决定目标方法。