关于继承的理解,自带有白话文,更适合编程小白新手,简单易理解

有人说,五百次的回眸才换来今生的擦肩而过,答应我,不要变成秃子好吗?

在这里插入图片描述

什么是继承?

说起继承,让所有程序员不仅下身一紧,作为面向对象的三大特征(四大)之一,在刚开始接触编程的时候,他就像编程的一道入门槛,甚至有的程序员工作了很多年,对于面向对象的东西,还是说不上来一个所以然来;

那到底什么是继承,在我们生活中,一提到继承,我们就想到什么?继承家产?

其实继承就跟继承家产差不多,只要形象的理解就可以了;
示例:张三的爸爸,是一个土豪,比较有钱,盖了很大的房子,还有很多跑车,然后张三的爸爸老了之后,张三继承了他爸爸的家产,其中,包括了钱财和房子,还有车;这个就属于继承

我们把张三爸爸比作父类,把张三比作子类,子类是可以继承父类的,我们生活中,张三想要继承财产,其身份必须是张三爸爸的儿子,那么在我们编程中,我们的子类想要继承父类,也需要一种办法,使用关键字“extends”
在这里插入图片描述在这里插入图片描述

以上的所有解释皆为形象,切记不要死记这个模板

在变成中,父类也叫做–基类、超类(这种叫法比较规范,在一些技术文档中会使用),我们便于理解,都会叫父类;
子类也叫做派生类;

那么在发生继承关系的父类子类中呢,一个子类只能继承一个父类,(张三不能有两个土豪爸爸),但是多个子类可以同时继承一个父类,(这里就不要用张三强记了,张三的爸爸可以有多个儿子,比如李四、小王等等,但是这里的继承,要清楚一点,父类的车子、房子、钱财,只要谁继承,谁都会复制一份完整的家产到自己手里,千万不要被张三误导了);父类的方法和属性,都可以通过子类调取到,但是父类的私有的属性和方法,子类就没有办法调用了;

在这里插入图片描述
同时继承,是支持多重继承的,是什么意思呢?张三可以继承他爸爸家产,那他爸爸同样也可以继承他爷爷的财产;

那问一个比较难的问题,请问,张三和张三爸爸和张三爷爷,谁的家产最多,(家产可以理解为,程序中的办法和属性),喵的,当然是张三了,张三相当于继承了两代人财产;

在这里插入图片描述
同时,我们知道,我们在子类可以调取父类的方法和属性,但是我们凭窗写代码,用的方法和属性是继承谁的?是系统默认所有类继承java.lang.Object;
它属于默认继承的,所以我们从表面看不到继承在哪里,但是我们可以通过方法,浏览源码,我们就可以发现;

代码示例:
定义一个父类:

public class ye {
    public String name="张三爷爷";

    public void aa(){
        System.out.println("我是父类中的测试方法");
    }
}

定义两个子类:

public class Fu extends ye {

}
public class Zi extends Fu {

}

定义测试类:

public class test extends Fu{
    public static void main(String[] args) {
        Zi zi = new Zi();
        System.out.println(zi.name);
        zi.aa();
    }
}

在测试类中,我们new了子类的对象,通过对象来调用父类中的方法:
运行结果:
在这里插入图片描述
通过上面代码。我们可以知道,我们并没有new父类,我们调用的话,完全是他因为我们继承父类中的方法和属性,所以我们可以通过new zi,把父类中的方法调用出来;

当然了,作为继承,难道一重程序员的东西怎么会这么简单呢?其中我们还要注意静态方法、静态属性,以及方法重名的调用的优先级,这种需要借助栈堆理解的,这些知识,你们可以关注我其他文章,也可以去网上自行查阅;

继承:就是为了解决代码的复用,比如父类中的代码功能,我子类也想用,这个时候,这个方法非常好用,这时肯定会有大哥说,之前new不是也可以调用其他类的方法和属性吗?说的没错,new是可以的,但是做大型项目的时候,我们不仅要用父类的方法,还需要增加其他功能,那么之前的new就有些力不从心了

最后,安排一张心灵净化图,缓解疲劳:
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DNCS高级工程师

你的创作是我打赏的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值