Java接口与抽象类
接口
接口是抽象方法的集合,以interface来声明 1.接口中只包含方法的声明,具体实现需要通过实现类来实现 2.接口中的方法默认是抽象的 3.接口中的方法不能和private,static和final共存 4.在接口中可以定义”属性”,可以通过接口的实现类的实例来访问(不推荐),推荐使用接口名.常量,这是一个常量默认是public, static ,final 5.接口可以继承接口(多继承) 6.在**JDK1.8**及以上版本中,可以使用**static**和default来定义和实现静态方法和默认方法复制代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
interface Person{
//静态方法实现
public static void printArr(int[] arr){
for(int i = 0; i < arr.length; i++)
System.out.print(arr[i]+"\t");
}
//default默认方法实现
public default void learn(){
System.out.println("我是一个默认实现的方法");
}
}
使用接口的好处:
- 接口定义的是一种标准,可以使我们的代码分层开发,分模块开发。
- 降低代码的耦合度,提高代码的可扩展性和可维护性
- 接口改进了单继承的局限。
抽象类
抽象类是使用abstract关键字定义的不能实例化的类1.抽象类可以包含抽象方法和具体方法,其中抽象方法只有方法的声明,没有方法体,具体方法有方法体.
2.构造方法,类方法不能被声明为抽象方法
3.继承抽象类必须实现所有的抽象方法
接口和抽象类的区别:
1.接口是行为的抽象可以有静态方法,抽象方法和默认方法,抽象类中可以有所有方法。2.接口和抽象类都不能实例化,接口需要类来实现后实例化实现类,抽象类需要类来继承然后实例化子类。
3.抽象类只能单继承,接口可以多继承接口(jdk1.7),接口还可以多实现。
4.接口中的“属性”是public static final类型的,抽象类中的属性跟普通类中的属性没有区别。
5.接口中的方法默认就是抽象的不需要加absract,抽象类中的抽象方法需要加abstract关键字。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步