继承

  • 类是对一类事物的抽象,比如:老师,学生

    继承的本质是对类的抽象(父类是对子类的抽象),比如:它把老师类,学生类抽象出了人,人这个类拥有学生和老师类的共同特征,是一个更高的类

    我觉得不如这样说:在这里,像人这样更高的类被称为父类,像学生,老师这样更低的类被称为子类

    所以父类是很多子类的抽象,他拥有子类的共同特征,于是可以让子类继承父类的所有财产,并扩展自己的特点,所以子类即拥有父类的所有特点,又拥有自身独有的特点

  • extends关键字:我理解为继承,子类继承父类,用extends来表示

  • 继承是类和类之间的关系,除此之外,类和类之间的关系还有依赖,组合,聚合等

举例说明:

人(父类)

public class Person {
    public int money;
    public void say(){
        System.out.println("说了一句话");
    }
}

学生(子类)

//空的
public class student extends Person {

}

执行类:

//student类中明明什么都没写,但是调用到了say方法,说明student类继承了Person类,子类会继承父类的所有财产,除此之外,他自己还有自己的方法,属性,它拓展了父类
public class zhixing {
    public static void main(String[] args) {
        student student = new student();
        student.say();
    }
}
  • 开启继承树的快捷键:点在一个类中,Ctrl+H,类的继承关系树状图就展示出来了

    在Java中,所有的类都默认直接或间接继承object类

    • 我们现在要思考一个问题:

      按照继承,我们只有继承了一个类,才会拥有这个类的财产(方法和属性),那为什么我们好像并没有继承什么类,但我们的类就可以调用很多我们不知道的方法,这些方法是哪里来的呐?

    • 回答:原来在Java中,所有的类都默认直接或间接的继承object类,object类就是所有类的父类,是对所有子类的抽象,也就是Java中所有的类,抽取出他们的共同特性,所以我们的类默认都是继承object类的,我们可以调用的属性方法也都是属于object类

    • 我们还要思考一个问题:为什么我们没有创建对象,就不能调用object类中的一些属性和方法呐?

    • 回答:因为只有静态(static)的属性和方法才可以直接被类调用,非静态的属性和方法都需要new一个对象,才可以被调用

  • Java中只有单继承,没有多继承,类可以直接的继承一个,但可以间接的继承多个。