Day010 继承

继承(面向对象第二大特性)


  • 继承的本质是对一批类的抽象,从而实现对现实世界更好的建模。

  • extends的意思是“扩展”。子类是父类的扩展。

  • Java中类只有单继承,没有多重继承!

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

  • 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。

  • 子类和父类之间的关系,从意义上讲应该具有“is a”的关系。

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

  • super

  • 方法重写

//在Java中,所有的类,都默认直接或者间接继承Object类
//Person 人:父类(基类)
public class Person {
    //public
    //protected
    //private
    //default
    private int money=10_0000_0000;

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

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}

//学生 is 人:子类(派生类)
//子类继承了父类,就会拥有父类的全部属性和方法!但是需要注意的是,对于所有的非私有(no private)操作属于显式继承(可以直接利用对象操作),而所有的私有操作属于隐式继承(间接完成)
public class Student extends Person{

    //在类里ctrl+H 显示继承树
}

//Teacher is 人:子类(派生类)
public class Teacher extends Person{
}

public static void main(String[] args) {
    Student student = new Student();
    student.say();
    System.out.println(student.getMoney());
}

输出结果

说了一句话
1000000000

注意点

  1. Java之中只允许多层继承,不允许多重继承,Java存在单继承局限。

    //多层继承
    class A {}
    class B extends A {}
    class C extends B {}
    
    //多重继承
    class A {}
    class B {}
    class C extends A,B {}    // 一个子类继承了两个父类
    
  2. 在Java中,所有的类,都默认直接或者间接继承Object类。

  3. 子类继承了父类,就会拥有父类的全部属性和方法!但是需要注意的是,对于所有的非私有(no private)操作属于显式继承(可以直接利用对象操作),而所有的私有操作属于隐式继承(间接完成)。

  4. 在继承关系之中,如果要实例化子类对象,会默认先调用父类构造,为父类之中的属性初始化,之后再调用子类构造,为子类之中的属性初始化,即:默认情况下,子类会找到父类之中的无参构造方法。

  5. 在类里ctrl+H 显示继承树。

狂神说java

posted @ 2021-05-10 21:33  南方风  阅读(33)  评论(0编辑  收藏  举报