一、继承
- 作用:实现代码复用
- 用 extends 实现继承
        --超类、基类、父类(共有的属性和行为)
        --派生类、子类(特有的属性和行为)
- 派生类可以访问:超类+派生类,但超类不能访问派生类的
- 一个超类可以有多个派生类 但一个派生类也只能有一个超类  称为单继承
- 继承具有传递性

Java规定:构造派生类之前必须先构造超类
1.在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
注:super()调用超类构造方法必须位于派生类构造方法的第一行

public class SuperDemo {
    public static void main(String[] args) {
        Boo o =new Boo();
    }
}

class Aoo {
    Aoo(){
        System.out.println("超类构造方法");
    }
}
class Boo extends Aoo{
    Boo(){
        super();//默认的,调用超类的无参构造方法

        System.out.println("派生类构造方法");
    }
}

如何定义派生类java 写出派生类构造方法(java)_开发语言

 

2.在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供

二、super
作用:指代当前队形的超类对象
super用法:
1.super.成员变量名------------访问超类的成员变量
--当超类成员变量和派生类成员变量同名时,super指超类的,this指派生类的
--若没有同名现象,则写super和this是一样的
2.super.方法名()----------------调用超类的方法
3.super()--------------------------调用超类的构造方法

三、方法的重写(override/overriding):重新写、覆盖
--发生在父子类中 ,方法名相同,参数列表相同
--重写方法被调用时 看对象的类型执行方法-----------new谁的就调用谁的方法
1.重写不是一定发生的
2.就想把超类的改了 就直接重写
3.想在超类的基础上加 重写时先super超类的,再加自己的

补充:
1.泛化:从程序设计角度而言叫泛化,从代码角度而言叫继承,泛化就是继承
2.继承要符合is是的关系
3.继承的是超类的成员变量和普通方法,但不包括构造方法,超类的构造方法不是被派生类继承的,而是被派生类通过super()来调用的