#Java学习之路——基础阶段(第十篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容。
前言:此随笔主要是Java基础中的基础,相信大家对这方面肯定有着自己的理解和认识,具体详解可以参照万能的baidu,有的我就一笔带过,希望在我的学习之路上能够有大牛进行指导,也有更多的小伙伴共勉。
这里说一句题外话,互联网寒冬,Java处于负增长饱和状态,python语言登顶等等消息都让我犹豫要不要换语言,要不要换方向,就像我之前面试的时候面试官问我一个问题,如果是因为互联网行业薪资高才向这方面发展的,最好还是 做别的事情,也一样能拿到差不多的薪资,所以我对Java现在不仅仅是兴趣爱好,更多的是热爱它,也希望热爱它沉迷它之后也会给我带来好的回报把。
1.接口
在学习接口之前我一直有个疑惑,直到我了解了皮毛之后,才明白其中的道理,之前一直混淆于接口 继承 多态这几个方面,现在所认知的就是为了程序员提供方便便捷的环境,让程序更加的简单简单再简单。
接口就是定义了一个规范,内部主要是封装了方法,静态方法,默认方法,抽象方法,私有方法(JDK9)
这里的关键字interface这是接口的标识字符 implement 这是实现接口类的标识字符
这里的实现类可以实现多个接口,但是如果有多个抽象方法必须全部重写,对于静态方法则是通过接口名称.方法来调用,默认方法则可以通过实现类去调用
抽象方法的使用,需要在实现类全部重写抽象方法从而来达到使用的目的;
默认方法的使用,可以直接调用,也可以实现类重写来调用;
静态方法的使用,通过接口名称.方法名来调用;
这里的接口有一个多实现的就是一个实现类可以实现多个接口,格式:class [extends fu] implments 接口1,接口2...
如果有同名的默认方法必须重写一次默认方法,
关于子父类和若干个接口的优先级问题,是就近原则,从父类开始看如果父类没有再看接口中是否有方法。
注意:子接口重写父接口时,默认方法的default可以保留 但是如果是子类重写父接口的默认方法时,不可以保留default。
面试中常见的问题:
接口的成员特点:接口中,无法定义成员变量,但是可以定义常量,其值不可以改变一般用public static final 来进行修饰;
接口中没有构造方法,不能创建对象;
接口中,没有静态代码块。
2.多态
多态是Java中的三大特性之一(封装,继承,多态),指的是一种行为的多种表现形式;
当使用多态调用方法时,会先看父类是否有该方法,如果有,则执行的是子类重写后的方法,如果没有就直接报错;
多态这里会有一个向上转型和向下转型的一个知识点,这里有一个关键词是instanceof
向上转型是多态的默认,但是向下转型,如果子类的引用指向父类,父类不存在则会报错,所以向下转型是强制的,格式和基本数据类型强制转换大同小异
格式:子类 变量名 = (子类类型) 父类变量名;
为什么要向下转型?就是为了调用子类特有的方法,才必须要向下转型所以会有关键词instanceof来返回boolean值判断是否存在。
#Java学习之路——基础阶段(第十篇)的更多相关文章
- #Java学习之路——基础阶段(第二篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段(第九篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段(第一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第十篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第十四篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第十二篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第九篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第八篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
随机推荐
- maven与eclipse连接的配置
1.修改本地仓库位置 maven从中心仓库下载的文件一般默认放在本地用户文件加下的.m2/repository文件夹中,修改则需要找到所下载的maven文件夹下的conf文件夹下的setting.xm ...
- mysql的if用法解决同一张数据表里面两个字段是否相等统计数据量。
MySQL的使用用法如下所示:格式:if(Condition,A,B)意义:当Condition为true时,返回A:当Condition为false时,返回B.作用:作为条件语句使用.mysql的i ...
- Git使用教程,最详细,最傻瓜,最浅显,真正手把手教
(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么?Git是目前世界上最先进的分布式版本控制系统.工作原理 / 流程:Workspace:工作区Index / Stag ...
- tensorflow卷积神经网络-【老鱼学tensorflow】
前面我们曾有篇文章中提到过关于用tensorflow训练手写2828像素点的数字的识别,在那篇文章中我们把手写数字图像直接碾压成了一个784列的数据进行识别,但实际上,这个图像是2828长宽结构的,我 ...
- 559. Maximum Depth of N-ary Tree
https://leetcode.com/problems/maximum-depth-of-n-ary-tree/description/ 非常简单的题目,连edge case 都没有.思路就是:最 ...
- Python 官方文档解读(1):66 个内置函数
Python 解释器 (CPython 3.7)内置有 66 个函数,这些函数在任何时刻都是可用的.此文是为了对这 66 个函数进行简单的梳理,便于以后可能用到它们时能想到. 1. abs(x) 返回 ...
- jdk1.7更新visualvm插件
所有的插件全部更新到hithub上 https://visualvm.github.io/pluginscenters.html 然后,在根据不同的JDK版本选择不同的插件地址.更改VisualVM插 ...
- mysql 8.0 密码加密方式的坑
问题:新安装好MySQL 8.0和Navicat之后,连接时总是报: 1251 Client does not support authentication protocol requested by ...
- Shell脚本学习 - 运算符
继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...
- APM(pixhawk)飞控疑难杂症解决方法汇总(持续更新)
本文转自下面博主 https://blog.csdn.net/junzixing/article/details/79310159 APM/Pixhawk常用链接汇总(持续更新) https://bl ...