java系列:继承基本介绍

85 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情

继承

为什么需要继承

看一个小问题:看一个程序com.gaogao.extend_包,Extend01.java提出代码复用的问题

package com.gaogao.extend_;
​
public class Extend01 {
    public static void main(String[] args) {
        Pupil pupil = new Pupil();
        pupil.name = "小明";
        pupil.age = 15;
        pupil.testing();
        pupil.setScore(60);
        pupil.showInfo();
​
        System.out.println("==============");
​
        Graduate graduate = new Graduate();
        graduate.name = "大壮";
        graduate.age = 22;
        graduate.testing();
        graduate.setScore(100);
        graduate.showInfo();
​
    }
}

我们编写两个类,一个是Pupil类(小学生),一个是Graduate(研究生)

问题:两个类的属性和方法有很多是相同的,怎么办

可以看到,代码的复用性很差

解决方案:继承(提高代码复用性)

基本介绍

继承可以解决代码复用,让我们的编程更加靠近人类思维,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法。所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可

示意图

image-20221202202740601.png

此时的A类被称为父类,B类和C类称为子类,派生类,D类拥有本身的属性和方法,B类的属性和方法,A类的属性和方法

基本语法

class 子类 extends 父类{
    
}
  1. 子类就会自动拥有父类定义的属性和方法
  2. 父类又叫超类,基类
  3. 子类又叫派生类

我们把之前的代码改进一下放在com.gaogao.extend_.improve包中

package com.gaogao.extend_.improve;
​
import com.gaogao.extend_.Graduate;
​
public class Extend01 {
    public static void main(String[] args) {
        Pupil pupil = new Pupil();
        pupil.name = "小刚";
        pupil.age = 15;
        pupil.testing();
        pupil.setScore(60);
        pupil.showInfo();
​
        System.out.println("==============");
​
        com.gaogao.extend_.Graduate graduate = new Graduate();
        graduate.name = "小红";
        graduate.age = 22;
        graduate.testing();
        graduate.setScore(100);
        graduate.showInfo();
    }
}

我们可以看到代码量少了很多

继承带来的便利

  1. 代码的复用性提高了
  2. 代码的扩展性和维护性提高了