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

什么是继承?

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

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

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

我们把张三爸爸比作父类,把张三比作子类,子类是可以继承父类的,我们生活中,张三想要继承财产,其身份必须是张三爸爸的儿子,那么在我们编程中,我们的子类想要继承父类,也需要一种办法,使用关键字“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. Webpack是什么?(webpack初学简单易理解)

    Webpack5实战教程 1. 什么是webpack? 简介 2. 学习webpack使用的环境参数 node.js安装 webpack安装 3. 学习webpack的必备技能 4. 为什么使用web ...

  2. 简单易理解的做法:有n个人围成一圈,顺序从1开始排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。简单的循环做法。

    写在前面:这个方法用到很简单的指针与循环,以方便新手上手该题,并且通过直接模拟的方式理解这一过程.很多同学看懂题目意思而无法实现,不妨看看我的方法. 上代码: #include<iostream ...

  3. Java常用类之String类知识清单,简单易理解

    String类基础知识 1.String类表示字符串,理解为不可变的字符序列 2.String类声明为final,不可被继承 3.String类实现了Serializable接口:表示字符串是支持序列 ...

  4. Ajax简单易理解笔记

    Ajax笔记 一.get和post请求 1.post-file 二.什么是Ajax 三.封装Ajax 四.用户注册ajax接口测试 五.ajax-post 六.ajax-jquery 练习:一键换内容 ...

  5. 简单易理解的RC滤波器(含电路仿真)

    滤波器 滤波器是对波进行过滤的器件,是一种让某一频带内信号通过,同时又阻止这一频带外信号通过的电路. 滤波器主要有低通滤波器.高通滤波器和带通滤波器三种,按照电路工作原理又可分为无源和有源滤波器两大类 ...

  6. disable简单易理解用法(小白福音)

    今天遇到了disabled的一个练习,按照记忆试了一下,运行不出来,搜了半天才搜到可以解决我问题的信息,基于在很多人转载别人的博客,也没有解释,让初学者摸不到头脑,我就来把复杂的内容简单化,废话不多说 ...

  7. 贝医生创始人章骏:做出更适合于中国人的牙刷

    中新网1月17日电 "两周销量近10万支,销售额逼近1000万:拥有多项专利." 这些惊人数字和成绩的背后,都指向了一款名叫贝医生的电动牙刷.一个刚刚成立两三年的企业如何取得这些不 ...

  8. 新零售与直销的区别是什么 哪一种更适合创业者?

    电子商务的出现改变了人们的购物习惯,甚至让我们的生活也发生了很大的变化,在这种大环境下,越来越多的企业加入到电商大军中.那么,新零售与直销的区别是什么 哪一种更适合创业者?看完易族智汇javashop ...

  9. 百度王海峰:多模态深度语义理解将让AI更深地理解真实世界

    7月4日召开的百度AI开发者大会(Baidu Create 2018)上,百度高级副总裁.AI技术平台体系(AIG)总负责人王海峰发布百度大脑3.0,并指出,百度大脑3.0的核心是"多模态深 ...

  10. Raft 为什么是更易理解的分布式一致性算法——(1)Leader在时,由Leader向Follower同步日志 (2)Leader挂掉了,选一个新Leader,Leader选举算法。...

    转自:http://www.cnblogs.com/mindwind/p/5231986.html Raft 协议的易理解性描述 虽然 Raft 的论文比 Paxos 简单版论文还容易读了,但论文依然 ...

最新文章

  1. Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
  2. 少年五年升阿里P8,他如何从低谷登上“光明顶”?
  3. 【转】清理Visual Studio打开的项目和文件、查找和最近引用组件痕迹
  4. mysql允许用户远程连接_mysql允许用户远程连接
  5. Manjaro下带供电的USB Hub提示error -71
  6. BJUI实现点击按钮弹窗,提交到后台action后回显数据流程整理
  7. bzoj3438: 小M的作物
  8. 单击浏览器右上角的X弹出提示窗口
  9. 理解SharePoint中的备用访问映射(Alternate Access Mapping)
  10. C#LeetCode刷题之#665-非递减数列( Non-decreasing Array)
  11. 小型ASP服务器|简洁asp服务器
  12. 游戏 TRAP(SNRS)AlphaBeta版本
  13. VS2019配置opencv-4.5.2-vc14_vc15
  14. 解决Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)问题
  15. 德国是2018世界杯夺冠最大热门? Python数据分析来揭开神秘面纱…
  16. MATLAB APP Designer设计之图片处理
  17. 重磅:微软官方发布 Web 版 VS Code !
  18. Linux下系统函数
  19. CPU卡调试助手(FMCOS)
  20. 微信小程序:云开发表情包制作源码

热门文章

  1. 国产Linux二十年揭秘
  2. 车站计算机系统需要具备几天数据储存能力,(复习资料)城市轨道交通车站设备1.doc...
  3. 【时间序列预测】基于matlab EMD优化BP神经网络汇率预测【含Matlab源码 1742期】
  4. 【优化分类】基于matlab遗传算法优化支持向量机分类(多输入多分类)【含Matlab源码 QF003期】
  5. 【优化求解】基于matlab GUI模拟退火算法求解全局最大值最小值问题【含Matlab源码 1242期】
  6. 【DVRP】基于matlab遗传和粒子群算法求解带距离的车辆路径规划问题【含Matlab源码 1036期】
  7. eclipse连接MySQL,进行增删改查
  8. java命令行参数是什么_Java实验课:命令行参数是什么?
  9. xp计算机保护系统,XP系统总是弹出“Windows文件保护”窗口提示的解决方法
  10. C语言读取文件输入输出