继承性
什么是继承?
- 子类继承父类,允许子类拥有父类的属性和行为(方法)
- 继承是多态的前提,如果没有继承就没有多态。
继承的关键字
- super(父类)
- exteds(继承)
语法
- class 子类 extends 父类{
}
继承的优缺点
- 优点
提高了代码的复用性 - 缺点
由于继承会有多层的继承关系,会提高他们之间的依赖关系,耦合度会变高
类的继承
- 一个子类可以派生别的子类
- 一个父类可以有多个子类,一个子类只能有一个父类
- Java 的继承是单继承
- 所有类的基类都是 Object(Java所有类的父类)
方法重写与方法重载 (重点)
方法重写
- 如果父类的方法满足不了子类要求时,子类可以对父类进行方法重写
- 要求子类重写的方法名,参数列表、返回值类型必须和父类完全一致
- 子类重写方法的访问修饰符权限不能低于父类方法的修饰符权限
- 子类方法和父类方法必须同为 stastic或非stastic
方法重载(overload)与方法重写(override)的区别
- 重载必须在同一个类中,方法重写必须存在继承关系
- 方法重载要求 方法名相同参数列表必须不相同 和返回值无关
- 方法重写要求 方法名,参数列表、返回值必须和父类一致
super关键字
- super关键字可以修饰属性,方法、构造方法
- 当前子类和父类属性出现重名时,默认会调用子类的属性(就近原则);可以通过 “super.属性名” 的方式显示的调用父类声明同名属性
- 子类重写父类方法后,如果子类想再次调用父类被重写的方法 可以通过 “super.方法名()” 的方法调用父类方法
- super 可以修饰构造方法 通过子类构造方法中使用 “super(形参)” 来显示和调用父类对应的构造方法
- 注意
- “super(形参)” 必须声明在首行
- 说明 “this(形参)” “super(形参)” 只能出现一个
- 在构造方法中,不显示的通过“super(形参)” 的方式调用父类对应的构造方法;默认会调用父类无参的构造方法
如果一个类没有显示的继承一个类,就会继承 Object
访问修饰符(重点)
修饰类,变量、方法、接口
- public :公共的,在当前项目下任何地方都可以访问
- protected:受保护的,在同一个包下或者在其他子类中可以访问
- default:缺省 在同一个包下
- private:私有 在当前类下面访问
子类对象实例化全过程
学习笔记