美文网首页
抽象类跟接口的区别

抽象类跟接口的区别

作者: 双眼皮的大眼睛 | 来源:发表于2019-10-21 21:20 被阅读0次

*抽象类*

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

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

*接口*

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

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

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

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

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

接口也可以继承,,extends

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

##区别

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

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

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

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

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

相关文章

网友评论

      本文标题:抽象类跟接口的区别

      本文链接:https://www.haomeiwen.com/subject/mmkcrftx.html