1、面向对象
三大特性 —— 封装、继承、多态
封装
封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。
实现方式:private关键字,实现私有化。public公开可以暴露的方法和属性。
继承
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
多态
具体表现为父类的引用指向子类的实例。
- 对象类型和引用类型之间具有继承(类)/实现(接口)的关系
- 引用类型变量发出的方法调用的到底是哪个类中的方法,必须在程序运行期间才能确定;
- 多态不能调用“只在子类存在但在父类不存在”的方法
- 如果子类重写了父类的方法,真正执行的是子类重写的方法,如果子类没有重写父类的方法,执行的是父类的方法
接口和抽象类
共同点:
- 接口和抽象类都不能直接实例化,只有实现和继承后才能创建具体对象
- 接口和抽象类都可以包含抽象方法,其没有方法体,要在子类或实现类中实现
不同点:
- 接口主要用于对类的行为进行约束,抽象类主要用于代码复用
- 一个类只能继承一个类(包括抽象类),但一个类可以实现多个接口,一个接口也可以继承多个其他接口
- 接口中的成员变量只能是
public static final
(默认)类型的,不能被修改且必须有初始值。抽象类的成员变量可以有任何修饰符,可以在子类中被重新定义或赋值 - 接口中,可以有
public abstract
(默认)、default
、static<