面向对象编程的本质:以类的方式组织代码,以对象的组织封装数据。
1、封装
程序设计要追求高内聚,低耦合。应禁止直接访问一个对象中数据的实际表示。封装指属性私有化,提供公共的访问方法get()和set();
意义:
- 提高程序的安区性
- 隐藏代码的实现细节
- 统一接口
- 提高系统的可维护性
2、继承
继承表示类和类之间的关系,继承关系的俩个类,一个为子类,一个为父类。子类继承父类,使用extends表示。
注意:
- java中只有单继承,没有多继承。
- 可以继承父类所有的内容,只是对应的权限可能没有。
- super调用父类的构造器,必须在子类构造器的第一行,只能出现在子类的方法中,只能在继承下才能使用。
- this代表本身对象,没有继承也可以使用
3、多态
重写:重写需要有继承关系,子类重写父类方法,方法一致,方法体不一致。
- 方法名相同
- 参数列表必须相同
- 修饰符,范围可以扩大但是不能缩小;public >protected> default >private
多态:同一方法根据发送对象的不同采用多种不同行为的方式
多态存在的条件:
- 有继承关系
- 子类重写父类方法
- 父类引用指向子类对象
注意:
- 多态是方法的多态,属性没有多态;
- 父类和子类有联系,没有的话会发生类型转换异常;
4、类型转换
instanceof用于判断左边的对象是否是右边类的实例;
父类转子类:向下转换,强制转换
子类转父类:向上转换,直接赋值即可