栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

“抽象类” 和 “接口” 的区别!!!

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

“抽象类” 和 “接口” 的区别!!!

抽象类:

在父类中没有具体实际工作的方法,我们可以将他设置为抽象方法,包含了抽象方法的类我们称为抽象类(abstract class)。
比如,有一个类中是这样写的:

class A{
	public void a() {
	// 啥都不用干
	}
} 

很明显可以看出,这个类A是什么都没有实现的,我们就可以把这个类定义为抽象类,直接用abstract修饰就好。

接口:

接口在java中是一个抽象类型,是抽象方法的集合。接口是抽象类的更进一步(换句话说,比抽象类还抽象),抽象类中还可以包含非抽象方法或者字段,而接口中的方法是抽象的,字段是静态常量。直接使用interface定义就好。

两者都不可以被实例化。

两者区别:

1、怎么定义:
(1)抽象类使用abstract 修饰,子类用extends来继承。
(2)接口使用interface修饰,具体实现类用implements。

2、类中方法的实现:
(1)抽象类中可以有抽象方法也可以又非抽象方法。非抽象方法和普通方法没有什么区别,只是有了抽象方法,就必须是抽象类。
(2)接口中必须是抽象方法。但是抽象方法都是不需要实现的方法,所以接口中的方法不需要实现。

3、访问的修饰符
(1)抽象类中可以有public、protected、default。抽象类的目的就是为了用于继承的,所以肯定不可以用private修饰。
(2)接口中public和default修饰符。 接口中的成员变量默认是public static final,成员方法是public abstact。一般情况可以不写。在jdk1.8中,可以实在具体方法,但这个方法必须呗default修饰。
4、继承:
(1)抽象类可以继承一个类,子类只可以继承一个抽象类。
(2)接口只可以继承接口,子类可以实在多个接口。

5、构造函数:
(1)抽象类中有构造函数。虽然有构造函数,但是还是不能被实例化。
(2)接口中没有构造函数。

6、新增方法:
(1)在抽象类中添加其他的普通方法,子类不需要去实现的。抽象方法就需要喽。
(2)接口中添加方法,子类中就需要去实现。

7、自己的理解:
(1)抽象类其实表示的就是这个动物是什么?这个动物可以是小猪、小鸡、小鸭…
(2)接口其实表示的是这个动物能干什么?飞、吃、睡、跑…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/343179.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号