我的学习阶段是跟着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学习之路——基础阶段(第十篇)的更多相关文章

  1. #Java学习之路——基础阶段(第二篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  2. #Java学习之路——基础阶段(第九篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  3. #Java学习之路——基础阶段(第一篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  4. #Java学习之路——基础阶段二(第十篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  5. #Java学习之路——基础阶段二(第十四篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  6. #Java学习之路——基础阶段二(第十二篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  7. #Java学习之路——基础阶段二(第九篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  8. #Java学习之路——基础阶段二(第一篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  9. #Java学习之路——基础阶段二(第八篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

随机推荐

  1. knn算法详解

    邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...

  2. SpringBoot的Profiles根据开发环境和测试环境载入不同的配置文件

    参考:https://www.cnblogs.com/bjlhx/p/8325374.html 1.需要有一个默认的配置文件,然后一个正式的配置文件,一个测试的配置文件.激活配置项,默认的配置文件ap ...

  3. python全栈开发day117-MongoDB,pymongo

    1.MongoDB操作 使用了不存在的对象即创建该对象 1.增加: 官方不推荐写法: insert([{},{},{}]) 官方推荐写法: insertOne({}) insertMany([{},{ ...

  4. gulp 粗粗学习 记录下

    看视频学习 粗粗记录下 以便以后学习 1.初记录 gulp.task //定义一个任务 gulp.src //锁定到做task任务的文件路径 gulp.dest //锁定到任务做完后文件去向的路径 g ...

  5. 浅谈C#常用集合类的实现以及基本操作复杂度

    List 集合类是顺序线性表,Add操作是O(1)或是O(n)的,由于List的容量是动态扩容的,在未扩容之前,其Add操作是O(1),而在需要扩容的时候,会拷贝已存在的那些元素同时添加新的元素,此时 ...

  6. 【C语言编程练习】5.12 兔子产仔问题

    1. 题目要求 把一对新生的兔子关在屋子里,已知一对两个月大的兔子以后买一个月可以生一对小兔子,而这一对心生的小兔子初生两个月以后才可以生小兔子,假如一年内没有死亡,一年可以繁殖成多少对? 2. 题目 ...

  7. tar解压到指定目录

    对于tar.gz的压缩包,压缩参数是tar xvzf 指定解压路径为/tmp则为: tar xzvf xxx.tar.gz -C /tmp 注意/文件夹必须存在.

  8. Javascript 标识符及同名标识符的优先级

    一.定义 标识符(Identifier)就是一个名字,用来对变量.函数.属性.参数进行命名,或者用做某些循环语句中的跳转位置的标记. //变量 var Identifier = 123; //属性 ( ...

  9. 【工作手札】Nginx接口代理可跨域

    接口代理nginx配置 location /api/ { proxy_set_header Host api.shenjian.io; proxy_set_header X-Forwarded-For ...

  10. BZOJ 4455

    树的点到图的点是双射 枚举哪些点可以映射到 然后dp容斥 复杂度 $2^n*n^3$ #include<bits/stdc++.h> using namespace std; #defin ...