封装
高内聚,低耦合
意义
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 系统可维护增加了
属性 get/set
继承
-
super
- super调用父类的构造方法,必须在构造方法的第一个
- super只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
-
vs this
- 代表的对象不同:
- this :本身调用这个对象
- super:代表父类对象的引用
- 前提
- this:没有继承也可以使用
- super:只能在继承条件才可以使用
- 构造方法
- this(); 本类的构造
- super(); 父类的构造
- 代表的对象不同:
-
重写:需要有继承关系,子类重写父类的方法。
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大但不能缩小 public>protected>default>private
- 抛出的异常:范围可以缩小但不能扩大 ClassNotFoundException --> Exception(大)
-
重写 子类的方法和父类必须一致;方法体不同!
-
为什么要重写?
- 父类的功能子类不一定需要,或者不一定满足
Alt +Insert:override;
多态 (更加灵活)
即同一方法可以根据发送对象的不同而采取多种不同的行为方式
- 注意事项
- 多态是方法的多态,属性没有多态
- 父类和子类,有联系 类型转换异常! ClassCastException
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象(父类用子类的方法) Father f1 =new Son();
- 不能重写的方法
- static (静态)方法,属于类,不是实例
- final 常量
- private (私有)方法
- 总结
- 父类引用指向子类的对象
- 把子类转换为父类 向上转型(可能会丢失自己本来的一些方法)
- 把父类转换为子类 向下转型:强制转换
- 方便方法的调用,减少重复的代码