面向对象--继承--继承的概述

继承概述

  • 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
  • 通过extends关键字可以实现类与类的继承

格式:class 子类名 extends 父类名 {}  

单独的这个类称为父类,基类或者超类;

这多个类可以称为子类或者派生类。

  • 有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。 

 

程序引例

/*
        学生:
            属性:姓名,年龄
            行为:学习

        老师:
            属性:姓名,年龄
            行为:学习

        继承:
            按照我们之前学习的类的写法的时候,发现学生类和老师类中的成员大部分内容是一样
            name和age这两个成员变量,以及study()方法都是相同的。
            如果我们再继续定义类,比如医生,程序员,律师等等,他们同样也都具备了
            这些成员内容,每次写一个类都要重复写一遍,感觉很麻烦。

            我们想一想,可不可以把这些相同的内容放到一个独立的类中,然后,
            让其他类与这个类产生一个关系,建立好这个关系之后呢,其他类也同样具备了
            这个独立的类的一些功能。

            为了实现这样的技术,java提供了一个技术:继承

            父亲:
                儿子

            用代码如何去表示继承,编写代码的格式是什么样子呢?
            
            格式:class 子类名 extends 父类名 {}

            案例1:
                class Fu{}

                class Zi extends Fu{}

           案例2:
                class Student{}
                class Teacher{}

              改进后:
                class Person{}

                class Student extends Person{}

                class Teacher extends Person{}

*/

class Person{
    String name;
    int age;

    //构造方法
    //getXxx(),setXxx()

    public void study(){
        System.out.println("学习");
    }
}

class Student extends Person{
//有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。
    String id;

    public void coding(){
        System.out.println("敲代码");
    }
}

class Teacher extends Person{

}

class Doctor extends Person{

}


public class ExtendsDemo1 {
    public static void main(String[] args) {
        //创建一个学生对象
        Student s = new Student();
        s.study();
    }
}
上一篇:Implement和extends区别比较


下一篇:ES6中的继承