ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

抽象类与接口的异同点

2022-06-04 14:01:00  阅读:125  来源: 互联网

标签:异同 子类 接口 实现 抽象 抽象类 方法


 

一、接口

如果一个抽象类的所有方法都是抽象方法,则可以把这个类用另外一种形式来定义,即接口。

 

接口特点:

1. 一个接口可以被多个类实现;

2. 接口不能实例化,不能创建构造方法;

3. 一个接口可以实现多个接口,一个接口可以继承接口;

4. jdk8.0 之后,接口可以修饰全局常量,抽象方法,静态方法,默认方法;

5. 接口中的静态方法,只能接口进行调用;

6. 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

 

二、抽象类

使用 abstract 修饰的类称为抽象类。

 

抽象类特点:

1. 抽象类中可以没有抽象方法;

2. 类中可以定义抽象方法(abstract修饰的方法);

3. 抽象类不能直接实例化,要通过其普通子类进行实例化,抽象类可以创建构造方法,为子类调用;

4. 子类继承抽象类必须实现抽象类中所有的抽象方法,否则子类也必须定义为抽象类;

5. 抽象类修饰符必须为public或者友好的(默认的),不能是private,因为创建抽象类,就是要被其他类继承,用private修饰了,则不能被子类继承,子类便无法实现该方法。

 

三、两者相同点

1、 不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2、 抽象类里的抽象方法必须全部被子类所实现,子类不能全部实现父类抽象方法,那么该子类还只能是抽象类。一个类实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

 

四、两者不同点

1.接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。

2.实现接口的关键字为implements,继承抽象类的关键字为extends。. 一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。

3.接口强调特定功能的实现,而抽象类强调所属关系。

4.接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的

标签:异同,子类,接口,实现,抽象,抽象类,方法
来源: https://www.cnblogs.com/zjjg/p/16341788.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有