【Java】接口和抽象类的区别

导读:本篇文章讲解 【Java】接口和抽象类的区别,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

接口

构造方法:没有构造方法
成员变量:只能是常量。默认修饰符:public static final
成员方法:jdk1.7只能是抽象的。默认修饰符:public abstract (推荐:默认修饰符请自己永远手动给出);jdk1.8可以写以default和static开头的具体方法

抽象类

构造方法:有构造方法,用于子类实例化使用。
成员变量:可以是变量,也可以是常量。
成员方法:可以是抽象的,也可以是非抽象的。

区别

接口是对动作的抽象,抽象类是对根源的抽象。

参数 抽象类 接口
默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实现, 是极度抽象的类型
实现 使用extends关键字。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 使用关键字implements。它需要提供接口中所有声明的方法的实现
构造方法 抽象类可以有构造方法 接口不能有构造方法
访问修饰符 抽象方法可以有public、protected和default 接口中的变量会被指定为public static final,而方法会被指定为public abstract
多继承 抽象方法可以继承一个类和实现多个接口 接口只可以继承一个或多个其它接口

相似点:

(1)接口和抽象类都不能被实例化

(2)实现接口或继承抽象类的普通子类都必须实现这些抽象方法

不同点:

(1)抽象类可以包含普通方法和代码块,接口里只能包含抽象方法,静态方法和默认方法,

(2)抽象类可以有构造方法,而接口没有

(3)抽象类中的成员变量可以是各种类型的,接口的成员变量只能是 public static final 类型的,并且必须赋值

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/104941.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!