面向对象设计 和开发程序的好处 交流更加流畅 、提高设计和开发效率
封装
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
私有化属性 提供公有化的访问方法 保证数据的安全性
封装的步骤 修改属性的可见性 private
创建公有的 getter/setter 方法 用于属性的读写
在getter/setter方法中加入属性控制语句 对属性值的合法性进行判断
继承
//子类继承父类的非私有的属性和方法 extends
//继承的好处 实现了代码的复用性
//继承的特点 java中一个子类只能有一个父类(单继承) 一个父类可以有多个子类
java中支持多层继承
//重写 发生在继承关系中 子类重写父类的方法
要求:方法名相同 参数相同 并且子类的方法不能比父类有更严格的访问权限
//子类重写父类的方法 那么子类中新的方法就会覆盖继承过来的方法
//继承关系 实例化的顺序 父类属性-父类构造方法-子类属性-子类构造方法
//多态 重写 重载 上下转型(向上转型 向下转型)
好处:多态可以减少类中代码量 可以提高代码的扩展性和可维护性
向上转型: 继承的继承上 用父类来接收子类的对象 三种方法 如下图: 形参 和实参 直接转型 返回值转型
向上转型的特点:方法的调用取决于父类 但是执行子类的方法
向上转型中 方法能不能调用 看父类有没有这个方法 如果没有报错 如果有 那么执行 执行的是子类的方法
向下转型(属于强制转型的一种) 子类接收父类的对象(要求:源对象类型必须和强制转换类型相同)
//对象 instanceof 类型 判断对象是否属于这个类型