**
继承
**
类和类的继承关系,一个类继承了另一个类,称为子类和父类(超类),子类会拥有父类的所有属性和方法
继承的作用是实现了类的复用
在定义类的时候,使用extends关键字
子类不能继承父类的构造器
Object类是所有类的根类,如果一个类没有继承任何类,默认是继承Object类
访问范围修饰符
可以修饰属性、方法、类(private可以修饰内部类)
private 本类中使用
默认的(什么也不写) 本类中使用 同一个包中使用
protected 本类中使用 同一个包中使用 子类中使用
public 全局
方法的重写/覆盖(Override)
当子类继承的方法不能满足子类的需求,对子类的方法进行重写。
重写的语法要求:方法名、返回类型、参数列表与父类的方法相同且范围修饰不能低于父类方法的范围修饰。
为什么要重写方法?而不是定义独有的方法?
在一些功能方法中已经调用了父类的方法,子类的方法和功能方法组合使用,一定要重写父类的方法
重写Object类的toString()
super关键字
- 调用父类的属性
public String getName() {
return super.name;
}- 调用父类的方法
public void test() {
super.sing(“a”);
} - 调用父类的构造器
子类构造器的语法:在每个子类构造器中一定要调用一次父类的构造器,默认调用父类无参构造器。调用父类构造器一定在子类构造器的第一行调用。
public Person(String name,int age,String color,String tel) {
super(name,age,color);
this.tel = tel;
}
- 调用父类的方法
this关键字
当前对象
this.属性
this.方法
this() 调用当前类的某个构造器
空指针异常(NullPointerException)
调用了一个引用对象的属性或方法时,而这个引用的对象是null