day02继承
继承
什么是继承
在java中一个类可以通过extends关键子继承另一个类.
通过继承可以得到被继承类的非私有的成员.
好处和弊端
好处:
提高代码的复用性.
提高了代码的维护性.
为多态提供前提条件.
弊端:
类与类之间的关系变得紧密了.耦合度变高了.
特点:
java中的继承是单继承的:(一个类只能有一个父类)
java支持多层继承:(子类有父类还可以有爷爷类)
成员变量特点:
局部有用局部,子类有用子类的.子类没有用父类的.
成员方法特点:
子类和父类有相同的方法.这叫做方法重写.此时会执行子类的方法.父类的被覆盖了.
构造方法的特点:
创建子类对象,一定会先访问父类的无参构造.
我们可以在子类的构造中通过this()调用自己的其他构造,也可以通过super()调用父类的构造.但是this()和super()不同共存,因为他们都要写在构造方法的第一行.
super
在子类中如果想访问父类的成员.都可以通过super.父类成员来调用.
权限修饰符:
public protected 默认(啥都不写) private
抽象类
概念:
当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了!
特点:
- 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
- 抽象类不能实例化
- 抽象类可以有构造方法
- 抽象类的子类
要么重写抽象类中的所有抽象方法
要么是抽象类
final[理解]
修饰类
该类不能被继承(不能有子类,但是可以有父类)
修饰方法
该方法不能被重写
修饰变量
表明该变量是一个常量,不能再次赋值
基本数据类型:值不能改变
引用数据类型:地址值不能改变.
代码块
构造代码块
执行所有构造方法的共性,会在构造方法执行之前执行.
局部代码块
1,限制变量作用域.2有利于变量提前回收.
静态代码块
随着类的加载而执行.可以做一些初始化工作[常用]