默认情况下,面向对象有三大特性:继承、封装、多态。但如果考官让回答4大特性,我们就把抽象加上去。
1、继承
继承就是从已有的类继承信息创建新类的过程,被继承的类称为父类(也叫基类、超类),继承的类叫做子类(也叫派生类)。子类可以全盘接受父类的所有属性和方法(甚至是private修饰的,也可以继承,但是不能在父类之外访问,提供共有的访问方法(比如封装set()、get())就可以用)。
2、封装
封装就是把数据和操作数据的方法绑定起来,对外提供简单的接口,在java中对类中的方法的定义就是对细节的一种封装,简单地说,封装就是隐藏一切可以隐藏的内容,对外提供一个简单的接口。
3、多态
多态就是指不同子类型对于同一消息做出不同的反应,简单地说,就是对于同一对象,调用相同的方法,但做了不同的事情,多态具体体现在方法重载和方法重写,方法重载实现的是编译时的多态,而方法重写实现的是运行时的多态,需要注意的是当发生向上转型时,子类独有的方法不可以被调用。
4、抽象
抽象就是把不同的对象相同的特征总结出来提取成一个类,抽象只关注对象有哪些的属性和方法,,从不关心这些方法具体怎么实现。