专栏首页CatororyJava8中的接口和抽象类的区别

Java8中的接口和抽象类的区别

今天跑了好远去面试,面试官问了上面这个问题,我是一脸懵比,抽象类我自己没写过,JAVA8对接口有什么修改完全没印象,现在来总结一下,至少下次再遇到这个问题要答上来。

  • 简单的说就是接口增加了一个默认方法,用default关键字标识,这个方法可以不被实现类覆盖(那和抽象类有什么区别?)
  • 接口可以声明静态方法,且可以提供实现

其实这么一搞,真的接口和抽象类的区别就越来越少了

相同点

不同点

1.都是抽象类型

1.抽象类不可以多重继承,接口可以(这个区别和之前是一样的)

2.都可以有实现方法(1.8之前的接口不行)

2.设计理念的不同,抽象类是"is-a"关系,接口是"like-a"关系(和之前一样)

3.实现类都不需要实现所有方法(1.8之前接口需要)

3.接口中的变量默认是public stafic final且必须赋值;抽象类中的变量是friendly的,子类中可以重定义重新赋值

区别确实挺小的

参考

https://my.oschina.net/benhaile/blog/176007

https://mp.weixin.qq.com/s/Kp8Ie1celN5DpKtZ26eOZA

原文链接:https://mp.weixin.qq.com/s/Kp8Ie1celN5DpKtZ26eOZA

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 归并排序

    复制一个同样的数组aux,3个索引,蓝色剪头为最终的数组中需要跟踪的索引位置,两个红色剪头是已经分别排序好的两个数组当前要考虑的元素

    用户6404053
  • 快速排序

    用户6404053
  • spark Pi && word count计算

    2.随机向正方形内随机找n个点,计算每一个点到圆心的距离,小于1的就是圆内的点,假设数量是count

    用户6404053
  • C#中抽象类与抽象方法的作用与实例

    在C#中,允许把类和方法声明为抽象类与抽象方法,具体的声明方法是在类名或方法名前加上abstract关键字。 那么我们什么时候应该用抽象类呢? 如果一个类设计...

    zls365
  • Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程

    上上篇文章《nginx 平滑升级&新增模块》提到了公司的 https 访问需求。当我新增了 SSL 模块之后,却发现以前还真没部署过 https 访问。 下面整...

    张戈
  • 详细对比php中类继承和接口继承

    结果:这是第一个类。 frist 第二个类和第三个类没有重写printer()方法,第三个类实例化后可以调用printer()方法。

    砸漏
  • 图的割点 --《啊哈!算法》

       这个算法的关键在于:当深度优先遍历访问到顶点u时,假设图中还有顶点v是没有访问过的点,如何判断顶点v在不经过u

    用户2965768
  • 【转】基于C#的WinForm中DataGridView控件操作汇总

    Console.WriteLine(DataGridView1.CurrentCell.Value);

    静谧的小码农
  • 判断二叉树是否为二叉搜索树

    这题利用二叉搜索树的特性:左子树的所有的关键字小于根节点的关键字,右子树的所有关键字都大于根结点 的关键字。二叉搜索树的中序遍历一定是个有序序列。根据这一特性可...

    AI那点小事
  • C++转换构造函数与类型转换构造函数

    转换构造函数:  转换构造函数的只有一个形参: 1 Student(float s) 2 { 3 score = s; 4 age = 0; ...

    233333

扫码关注云+社区

领取腾讯云代金券