封装+多态
- 封装回顾
- 概念:属性私有化(private),提供公共(public)setter&getter方法访问私有属性。
- 目的:提高数据的安全性。(额外进行控制)
- 抽象
- 前提:具有相同属性和方法。
- 场景:对象 -> 类 、类 -> 父类
- 继承
- 将相同的属性和方法抽象到父类中,子类继承(extends)父类,子类就可以继承父类中public+protected类型的的属性和方法。
- 父类:类抽象的到父类,必须满足is-a关系。
- 都是类(class),父类更抽象、子类更具体。

- 继承优点:提高维护性和扩展性。
- 子类会默认调用父类无参数的构造方法。
- 重写:父子类中,方法名、参数、返回值都相同。权限不能缩小。
- 重写方法时,使用注解@Override
- 子类中的重写,既可以全部重写也可以部分重写,使用super.bark()方法重用父类方法。
- 初始化顺序:先静态后非静态,先父类后子类
- final
- 类:最终类,不能被继承。代表为:String
- 变量:常量,不能被修改。例如:方法的参数。
- 方法:最终方法不能被重写。
- Object类-所以类的父类
- 所有类,或者直接,或者间接继承Object类。
- equals()判断对象内存地址是否相等 == 。
- String equals()重写了Object中的equals()方法。
- toString()重写Object中的方法。
- Object 有 toString() 方法,返回的是 (类名+@+hashcode)字符串。
- 多态
- 定义:同一个对象在不同的环境(开发环境、运行环境)下表现出不同的类型(父类、子类)。
- 使用:在声明数据类型的时候,能用父类用父类,能有接口用接口。(重写父类方法)
- 变量类型改成父类。
- 子类特有的方法调用前强转子类。
- 意义:提高代码重用性,进而提升维护性和扩展性。