接口
1、因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但是可以实现多个接口,同时接口本身也可以继承多个接口。
2、接口里面的成员变量默认是public static final类型的。必须被显示的初始化。
3、接口里面的方法默认都是public abstract类型的。隐式声明。
4、接口没有构造方法,不能被实例化。
5、接口不能实现另外的一个接口,但是可以继承多个接口。
6、类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类就要被定义为抽象类。

抽象类
1、如果将一个类声明为abstract,此类不能生成对象,只能被继承使用。
2、抽象方法必须存在于抽象类中。
3、抽象类中可以有一般的变量和一般的方法。
4、子类继承抽象类必须实现其中的抽象方法,除非子类为抽象类。

接口与抽象类的区别:

1、接口只能包含抽象方法,抽象类可以包括普通方法。
2、接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。
3、接口不包含构造方法,抽象类里可以包含构造方法。

抽象类不能被实例化,但不代表它不可以有构造函数,抽象类可以有构造函数,以备抽象类扩充。

1、接口是核心,其定义了要做的事情,包含了许多的方法,但是没有定义这些方法应该如何做。
2、如果许多类实现了某个接口,那么每个都要用代码实现那些方法。
3、如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。

所以,抽象类是为了简化接口的实现,这不仅提供了公共方法的实现,让你可以快速开发,又允许你的类完全可以自己实现所有的方法,不会出现紧耦合的问题。

应用场合就很简单了

首先优先定义接口,如果有多个接口实现公有的部分,则使用抽象类。

对于使用面向对象类编程语言的程序员来说,“”接口“”这个名词一定不会陌生,但是不知道各位有没有这样的困惑:接口到底有什么用途?
它和抽象类之间有什么样的区别?能不能用抽象类代替接口呢?作为程序员,一定会经常听到“”面向接口编程“”这个短语,那么它是什么意思?有什么样的思想内涵?和面向对象编程之间有什么样的关系?下面将一一解答这些疑惑。

1、面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更加先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。

2、接口的本质
接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或者其他接口所实现(或者也可以说被继承)。它在形式上可能是如下的样子:

interface InterfaceName{ void Method1();void Method2(int para1);void Method3(String para2,String para3);}

那么,接口的本质到底是什么呢?或者说接口存在的意义是什么。我认为可以从以下的两个视角来考虑:

1)接口是一组规则的集合。

它体现了实现本接口的类或者接口必须拥有的一组规则。体现了自然界“”如果你是…则必须能…“”的理念。

2)接口是在一定粒度视图上同类事物的抽象表示。

注意这里我强调了在一定粒度视图上面,因为“”同类事物“”这个概念是相对的,它因为粒度视图不同而不同。

3)面向接口编程综述

通过上面的描述,我想大家对接口和接口的思想内涵有了一个了解,那么什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务,而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。

接口与抽象类的区别和联系相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 接口与抽象类的区别,为什么要用接口,抽象类不香吗?

    接口是一种比较特殊的抽象类(个人理解) 接口与抽象类的区别: 最直观来说: 接口: 接口中变量是常量,所以接口中不能有构造方法.因为构造方法最大的作用是给对象赋值或改值(个人理解)和创建对象.因为变量 ...

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

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

  8. 接口,类与接口的关系,接口与抽象类的区别

    接口 1 接口的概念 与之前学习过的抽象类一样,接口( Interface )在Java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准. 2 接口格式 3 接 ...

  9. 精通Java 面试 07题 接口和抽象类的区别 (持续更新中)

    文章目录 一.接口和抽象类的区别(方式一) 二.接口和抽象类的区别(方式二) 总结 这里我写了两种回答方式,可以各取所需. 一.接口和抽象类的区别(方式一) 抽象类可以存在普通成员函数,而接口只能存在 ...

最新文章

  1. POJ 1001 Exponentiation C++解题报告 JAVA解题报告
  2. 【以太坊智能合约】Embark Framework 开发基础篇
  3. js日期格式判断(2018/01/30) -方法 小时分秒格式判断((HH:MM)
  4. hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
  5. 系统架构师学习笔记_第十四章_连载
  6. XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,
  7. 转 结构体中字节对齐问题(转载)
  8. html5拖拽图片批量ajax无刷新进度上传
  9. DockOne微信分享(七十七):用Harbor实现容器镜像仓库的管理和运维
  10. 【HDU 5965】扫雷【线性递推】
  11. 数据结构之顺序表(C语言版)
  12. Keil5(C51,MDK)注册详细教程(2032年版本)
  13. idea格式化java代码,设置属性自动换行
  14. java 纯真ip 乱码_UTF-8使用纯真IP数据库乱码问题
  15. 福禄克网络VERSIV(威测)电缆认证系统实现ROI更大化
  16. 远程桌面由于以下原因之一无法连接到远程计算机解决方法(亲测)
  17. H3C交换机console口Xshell连接
  18. Win2003安全警报--当前安全设置不允许从该位置下载文件
  19. Simulink Solver
  20. 《2021/07/24》1 -- linux -- 网络名称空间和网桥的基本操作

热门文章

  1. Linux之网络管理(6)ip及路由相关命令
  2. 《转载》struts旅程《2》
  3. 通過腳本實現zabbix的安裝
  4. 你们觉得这个时代好还是父母那个时代好?
  5. JAVA入门到精通-第6讲-成员属性-成员方法
  6. 助教总结-【北京电子科技学院_2016-2017-2_程序设计与数据结构】
  7. 数据挖掘算法 1 ID3(python)
  8. easyui和My97DatePicker结合使用报“权限错误”的问题
  9. 重拾PHP--开篇碎碎念
  10. MySQL事务ACID实现原理