一文读懂继承

本文介绍了Java中的继承概念,通过示例展示了如何使用继承来减少代码重复,提高代码效率。学生类(Student)继承自人(Person)类,从而避免了属性和方法的重复定义。通过这种方式,子类可以直接使用父类的属性和方法,体现了面向对象编程的复用原则。文章还提及了Java中类的单继承特性,即一个类只能有一个父类。
摘要由CSDN通过智能技术生成

一、简介

继承顾名思义就是一个类(子类)继承另一个类(父类)。使其具有另一个类的相同的方法。
Java继承分为单继承和多重继承。(后续讲)
从下面两个例子中我们不难看出,两个类无论是方法还是属性都十分相似。因为学生本身也是人。

public class Person {
    private String name;        //姓名
    private int age;            //年龄
    private String sex;         //性别

    public Person() {

    }

    //添加get set 方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return sex;
    }
}
public class Student {
    private String name;
    private int age;
    private String sex;
    private String student_id;          //学号

    public Student() {

    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return sex;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setStudent_id(String student_id) {
        this.student_id = student_id;
    }

    public String getStudent_id() {
        return student_id;
    }
}

如果每一个类都需要如此大费周章的写一些属性几乎相同,而且功能也差不多。那么效率太低了。于是就有了今天要降低内容——继承

二、思路

我们可以让学生类(子类),继承(extends)人这个类(父类)。
处理后的代码如下(只需要在类的后面加上 extends +父类名)即可。并且删除冗余代码。

public class Student extends Person{
    
    private String student_id;          //学号

    public Student() {

    }
    public void setStudent_id(String student_id) {
        this.student_id = student_id;
    }

    public String getStudent_id() {
        return student_id;
    }
}

相较于最上面的学生类(子类)的方法,至少从代码的数量上减少了许多。

三、测试总结

新建一个测试类Test

public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("是小王同学呀");
        System.out.println(student.getName());
    }
}

执行的效果如下:
在这里插入图片描述
在Student类(子类)中并没有name这个属性。因为Student类继承了Person类(父类),Person类中有相对应的属性和方法。因此Student类继承之后也拥有了属性和方法。也同样可以使用父类中的属性以及方法。
Java中关于继承性的规定,
1、一个类可以被多个子类继承
2、Java中类的单继承性,一个类只能有一个父类。
3、子父类是相对的概念。
4、子类直接继承的父类,成为,直接父类。间接继承的父类称之为,间接父类。
5、子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值