抽象类跟接口的区别

*抽象类*

定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,,那么这个类就必须声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),,不能定义其具体的功能实现。继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外这些方式的访问控制必须和父类中一样(或者更为宽松)。

比如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护或者共有的,而不能定义为私有的。此外方法的调用方式必须匹配,即类型和所需参数数量必须一致。

*接口*

使用接口interface,可以指定某个类必须实现那些方法,但不需要定义这些方法体内容。

接口是通过interface关键字来定义的,就像定义一个标准的类一样,但其中定义所以的方法都是空的。

接口中定义的所有方法都必须是公有的,这是接口的特性

要实现一个接口,使用implements操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口名称。

实现多个接口是,接口中的方法不能有重名

接口也可以继承,,extends

类要实现接口,必须使用和接口中所定义的方法完全一致的方式,否则会导致致命错误

##区别

1.对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以用个关键字extends继承

2.接口中不可以声明成员变量(包括静态变量),但是可以声明类常量。抽象类中可以声明各种类型的成员变量,实现数据的封装。

3.接口没有构造函数,抽象类可以有构造函数

4.接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰

5.一个类可以同时实现多个接口,但一个类只能继承于一个抽象类

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 抽象类和接口简介1.1 抽象类1.1.1 一个小案例我们先来看这样一个案例:世界上有许许多多不同种类的动物,每...
    走丢的小英俊阅读 684评论 3 2
  • 一、抽象类 1、抽象类含义的概括: 当多个类出现相同功能时,但功能主体不同,这样可以向上抽取,抽取时只抽取功能定义...
    玉圣阅读 840评论 0 6
  • 你很清楚的知道什么时候用抽象类,什么时候用接口么?p.s. 多文字预警! 1 抽象类和接口简介 1.1 抽象类 ...
    Sharember阅读 2,365评论 9 55
  • 心灵的又一次碰撞——林州市永和希望小学2017——2018学年第一学期家长会于今天顺利召开,整体上感觉:满意! ……
    甲午之印阅读 105评论 0 1
  • 还记得,前段时间的某个深夜,赛先生因为工作没有着落,心情沉重,久久不能入睡。忽而深情地抱着我,恳求我,一...
    半瓶白醋阅读 91评论 0 1