基础课程02
# 基础课程02
# 继承
public class 子类名 extends 父类名 { }
子类中所有的构造方法默认都会访问父类中无参的构造方法
因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化
每一个子类构造方法的第一条语句默认都是:super()
如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?
① 通过使用super关键字去显示的调用父类的带参构造方法
② 在父类中自己提供一个无参构造方法
Java中类只支持单继承,不支持多继承
Java中类支持多层继承
# 方法重写
子类中出现了和父类中一模一样的方法声明
- 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容
@Override
# 权限修饰符
# 状态修饰符
final
最终态static
静态
# final
修饰方法:表明该方法是最终方法,不能被重写
修饰变量:表明该变量是常量,不能再次被赋值
修饰类:表明该类是最终类,不能被继承
变量是基本类型:final 修饰指的是基本类型的数据值不能发生改变
变量是引用类型:final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
# static
static 关键字是静态的意思,可以修饰成员方法,成员变量
① 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件
② 可以通过类名调用,当然,也可以通过对象名调用,推荐使用类名调用
非静态的成员方法
能访问静态的成员变量
能访问非静态的成员变量
能访问静态的成员方法
能访问非静态的成员方法
静态的成员方法
能访问静态的成员变量
能访问静态的成员方法
总结成一句话就是:静态成员方法只能访问静态成员
# 代码块
代码块:在Java中,使用{}括起来的代码被称为代码块。
根据其位置和声明的不同,可以分为:
局部代码块
局部代码块:在方法中出现;
限定变量生命周期,及早释放,提高内存利用率
构造代码块
构造代码块:在类中方法外出现;
多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
静态代码块
静态代码块:在类中方法外出现,加了static修饰
在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次。
同步代码块
# 多态
多态:指的是同一个对象,在不同时刻表现出来的多种形态
多态的前提和体现
有继承/实现关系
有方法重写
有父类引用指向子类对象
向上转型
从子到父
父类引用指向子类对象
向下转型
从父到子
父类引用转为子类对象