1.继承中变量的使用
父类成员变量与子类成员变量同名时,使用super.变量名指定父类的成员变量
2.继承中构造方法的使用
- 创建子类对象时,会先调用父类的无参构造,因为子类的构造函数中默认存在一个super();
- 如果父类没有无参构造的话,我们就需要手动指定子类去调用父类的含参构造super(参数);
构造方法不可以被继承, so 构造方法名必须是本类的类名,不可能在子类中存在一个父类名字的构造方法
3.方法的重写
重写:子类对父类的方法不满意时,可以重写父类的方法
注意:重写是在不改变父类方法的前提下,实现功能的修改,重写后子类对象调用的就是重写后的功能
原则:两同 两小 一大
两同:方法名+参数列表相同
一大:子类方法的修饰符权限 >= 父类方法的修饰符权限
两小:子类方法的返回值类型,有两种选择:子类方法的返回值类型与父类方法的返回值类型相同
- 子类方法的返回值类型是父类方法的返回值类型的子类
注意:我们还可以给方法上加@Override注解,标记这是一个重写的方法
4.静态:
1.static可以修饰成员变量和方法
2.被static修饰的资源称为静态资源
3.静态资源随着类的加载而加载,最先加载,优先于对象进行加载
4.静态资源可以通过类名直接调用,也被称作类资源
5.静态被全局所有对象共享,值只有一份
6.静态资源只能调用静态资源
7.静态区域内不允许使用this与super关键字,因为this代表本类对象,super代表父类对象,有静态时还没有对象呢~
5.静态代码块static{}
格式:static{ }
位置:类里方法外
执行时机:随着类的加载而加载,优先于对象进行加载【只加载一次】
作用:用于加载那些需要第一时间就加载,并且只加载一次的资源,常用来初始化
顺序:静态代码块 构造代码块 构造方法 普通方法【如果普通方法里有局部代码块,执行局部代码块】
注意: 如果有多个静态资源,加载顺序取决于先后位置
注意: 静态不可以与this和super共用
6.final 关键字
- 修饰类:最终类,不可以被继承
- 修饰方法:这个方法的最终实现,不可以被重写
修饰常量:值不可以被更改,并且常量定义时必须赋值
注意:常量的定义需要使用全大写,单词之间使用下划线分隔7.面向对象之多态
实现多态的三个前提条件:
继承的存在
- 子类重写父类
- 父类引用变量指向子类对象
最后父类的引用变量调用子类重写的方法 即可实现多态