一、面向对象三大特性
1.1 封装
- 概念:尽可能隐藏对象的内部实现细节,控制对象的修改及访问权限。
- 使用***private***修饰符将属性修饰为私有,提供公共的**set/get方法供外部访问(唯一通道),方法内部可对数据进行检测和过滤。
1.2 访问修饰符
1.3 继承
-
类与类之间特征和行为的一种赠予或获得。在一组相同或类似的类中,抽取出共性的特征和行为,定义在父类中,实现重用。
-
语法:
class 子类 extends 父类{}//定义子类时,显示继承父类
-
应用:产生继承关系后,子类可以使用父类中的属性和方法,也可以定义子类独有的属性和方法。
-
好处:既提高代码的复用性,又提高代码的可扩展性。
-
Java为单继承,一个类只能有一个直接父类,但可以多级继承,属性和方法逐级叠加。
-
不可继承:
- 构造方法
- private修饰的属性和方法
- 父子类不在同一个package中时,default修饰的属性和方法
1.4 方法重写
- 当父类提供的方法无法满足子类需求时,可在子类中定义和父类形同的方法进行重写(Override)
- 原则
- 方法名称、参数列表、返回值类型必须与父类相同
- 访问修饰符可与父类相同或是比父类更宽泛
- 执行:
- 子类重写父类方法后,调用时优先执行子类重写后的方法
- ***super***关键字访问父类的属性和方法
- 在具有继承关系的对象创建中,构建子类对象会先构建父类对象
1.4 方法重写
1.5 多态
- 概念:父类引用指向子类对象,从而产生多种形态
- 父类引用仅可调用父类中声明的属性和方法,不可调用子类独有的属性和方法
- 使用场景:
- 使用父类作为方法形参实现多态,使方法参数的类型更为宽泛
- 使用父类作为方法返回值实现多态,使方法可以返回不同子类对象
- 作用:
- 屏蔽子类间的差异
- 灵活、耦合度低
1.6 装箱、拆箱
-
向上转型:
- 父类引用中保存真实的子类对象
-
向下转型:
- 将父类引用中的真实子类对象,强转回子类本身类型
-
只有转换回子类真实类型,才可调用子类独有的属性和方法
-
如果转换类型不匹配,会发生类型转换异常(ClassCastException)
-
instanceof
-
语法:
父类引用 instanceof 类型//返回boolean类型结果
-