一、面向对象的理解
现实生活中的业务是一个个对象协作的过程,面向对象就是按现实业务一样的方式将程序代码按一个个对象进行组织编写,从而把现实生活中的业务对象映射到计算机系统里。
二、四大特征
1、封装
把对象的属性和行为看成一个密不可分的整体,将两者“封装”在一个不可分割的独立单元(对象)中;隐藏信息,有些对象的属性及行为允许外界用户知道或使用,但不可更改,有些属性或行为不允许知晓只允许使用,封装尽可能的隐藏对象的功能实现细节。
-
一般使用private访问权限
-
提供相应的get、set方法来访问相关属性
2、继承
-
子类自动共享父类数据和方法的机制,Java不支持多继承,但支持多重继承。提高代码的复用性、维护性、是多态的前提。
-
子类继承父类非private属性和方法,可以对父类进行扩展,拥有属于自己的属性方法,也可对父类方法进行重写
3、多态
多态是同一项为具有多个不同表现形式或形态的能力,分为方法重载和对象多态两种形式。
-
方法重载:一个类中,允许方法名相同,但方法传递参数个数、类型不同,返回值不同。
-
对象多态:父类引用指向子类对象,同一个方法,根据操作的子类不同,所完成的功能也不同。
4、抽象
抽象就是找出一些事物的相似和共性之处,将这些事物归为一类,只考虑事物的相似和共性之处,而忽略与当前目标无关的方面。抽象包括行为抽象和状态抽象两个方面。
abstract class 和 interface 有什么区别:
-
抽象类不能创建实例对象,抽象类中的方法不必是抽象的,定义的抽象方法必须在具体子类中实现,所以不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类的所有抽象方法,那么子类也必须定义为abstract类型,一个类只能继承一个抽象类。
-
interface是一种规范和标准,一旦定义不能轻易修改,具有某种能力。可以说是抽象类的一种特例,接口中的所有方法必须是抽象的。方法定义默认为public abstract类型,成员变量类型默认为public static final,一个类可以实现多个接口。