1. 子类继承父类的时候,会先默认执行父类的 无参 构造函数(即便实例化的时候用的是传参的方式), 再执行子类的构造函数。
2. 继承 extends, 子类继承父类的构造方法和属性和一般方法
3. 重载, 同一个构造函数,有多种传参方式
4. 覆写, 同样的方法名, 父类中已经有了, 子类中想做到多态,做到不一样,那么需要在同样的方法名前面,加上 @Override
5. 多态:
向下转型,在编码时写成父类,实现时用的子类
向上转型,会丢失子类的方法
6. 抽象类 抽象类中没有直接的实现方法,不能直接实例化,需要通过子类实现实例化
abstract ClassName {...} 里面可以定义抽象方法,也可以定义一般的方法,但是一般的类,是不可以定义抽象方法的。
抽象方法, 不能加大括号写里面的具体实现,父类的抽象方法,一定要在子类中 用Override做覆写,不然会报错。
7. 接口 。 接口存在的原因: 1是保持封装性,仅开放必要的方法, 2. 用来实现 “多继承”