区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。

区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。

区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。

区别四,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。

如下给出两者的简单对比表格。

接口

抽象类

多继承

支持

不支持

类型限制

没有

有,只能是引用类型

方法实现

继承类型中必须给出方法实现

继承类中可以不给出

扩展性

比较麻烦

相对比较灵活

多层继承

比较麻烦,需要借助虚函数

比较灵活

http://www.cnblogs.com/roky/archive/2008/02/21/1076332.html

转载于:https://www.cnblogs.com/min10/archive/2008/12/25/1362195.html

面试题:接口和抽象类的区别相关推荐

  1. java 关注公众号没有调接口_高频面试题:接口和抽象类的区别

    作为一个基础的Java高频面试题,是所有Java面试者必须烂熟于心的.当然不能死记硬背,可以通过实际地写几个小demo,边实际操作边理解,既能感受到编程的快乐,更重要的是真的理解记住了二者的区别. 此 ...

  2. java接口和抽象类的区别(经典面试题)

    java接口和抽象类的区别(经典面试题) 要了解接口和抽象类的区别,首先需要明白接口和抽象类的定义. 1.抽象类 包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可 ...

  3. 接口和抽象类的区别(面试题)

    接口和抽象类的区别(*) 语法上 相同点 接口和抽象类都能定义属性和方法 接口和抽象类都只是特殊的类,都是通过子类来操作 抽象类和接口中都可以没有抽象方法 接口和抽象类都不能直接创建对象 接口和抽象类 ...

  4. Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)

    前言引入 官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 我的 ...

  5. java接口和抽象类的区别

    Java基础之接口与抽象类的区别 1.基本语法区别 Java中接口和抽象类的定义语法分别为interface与abstract关键字. 抽象类:在Java中被abstract关键字修饰的类称为抽象类, ...

  6. Java基础之接口与抽象类的区别

    1.基本语法区别 Java中接口和抽象类的定义语法分别为interface与abstract关键字. 抽象类:在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法 ...

  7. python接口和抽象类的区别_接口和抽象类有什么区别?

    最近团队在招人:阿里新零售事业群CBU技术部招Java高级&专家,团队主要负责B2B工业品牌业务,坐标杭州滨江,有兴趣的小伙伴私戳我. **************************** ...

  8. 接口与抽象类的区别和联系

    接口 1.因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但是可以实现多个接口,同时接口本身也可以继承多个接口. 2.接口里面的成员变量默认是public static final类 ...

  9. 接口和抽象类的区别?

    接口和抽象类的区别? 我先来说说它们俩在语法上的区别吧,然后再来谈谈我的个人理解. 抽象类可以有具体的方法和属性,  接口只能有抽象方法和常量. 抽象类使用abstract修饰,接口使用interfa ...

  10. 【转载】接口和抽象类的区别 --相信你看完不会再混淆了

    原文地址:http://www.cnblogs.com/huihui-gohay/archive/2009/12/13/1623070.html 我想,对于各位使用面向对象编程语言的程序员来说,&qu ...

最新文章

  1. Android之选项菜单和上下文菜单解析
  2. application.properties/yml文件读取
  3. qa 芯片测试_芯片测试术语介绍CP、FT、WAT
  4. c++标准程序库异常
  5. 微信小程序获取用户的 OpenId (附前端代码)
  6. mysql 数据修改时间_怎样修改mysql数据中的具体时间
  7. 转:SQL的内连接与外连接
  8. 用lsof恢复已删除的文件
  9. 【R】数据框data.frame的基本操作【1】
  10. matlab 请验证三角等式,[转载]matlab
  11. Win2003的IIS设置
  12. LoadRunner 11安装Micosoft Visual C++ 2005 SP1时提示命令行选项语法错误
  13. html5中怎么实现外边框中嵌入字_Web前端有什么优点?Web前端怎么入门?
  14. 老男孩python课后作业_老男孩Python全栈学习 S9 日常作业 001
  15. 大数据量点的地图展示,借助PostGIS实现动态点抽稀/聚合效果
  16. 程序员常见10大口头禅
  17. c++ 海战棋_GitHub - yifeitao/SimpleProgrammingProblems: 简单编程问题集中译版
  18. 基于 HTML5 Canvas 的机房温度云图展示
  19. onepunch的wp
  20. 计算机组成原理中J1J3是什么,计算机组成原理第一次实验报告

热门文章

  1. python在线编译-python在线编译器的简单原理及简单实现代码
  2. python测试开发自学教程-Web开发哪家强?看我用 Python 写一个颜值测试小工具
  3. python没基础可以学吗-终于认识没有基础怎么学python
  4. python画笑脸图案-如何让这些代码中的一个在窗口中绘制不同大小的笑脸?
  5. python导入txt为dataframe-Python提取TXT数据转化为DataFrame
  6. python语言入门p-python语言程序设计基础(第2版)课后答案嵩天
  7. python免费入门手册-Python 基础入门教程
  8. python3官方最新下载-python3.7
  9. 在Ubuntu上通过VNC Viewer连接Jetson nano桌面
  10. LeetCode Construct Quad Tree(dfs)