Java接口和抽象类区别
2023-09-14 09:00:30 时间
- 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。
- 接口中除了 static、final 变量,不能有其他变量,而抽象类中则不一定。
- 一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过 extends 关键字扩展多个接口。
- 接口方法默认修饰符是 public,抽象方法可以有 public、protected 和 default 这些修饰符(抽象方法就是为了被重写所以不能使用 private 关键字修饰!)。
- 从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。
备注:
- 在 JDK8 中,接口也可以定义静态方法,可以直接用接口名调用。实现类和实现是不可以调用的。如果同时实现两个接口,接口中定义了一样的默认方法,则必须重写,不然会报错。
- jdk9 的接口被允许定义私有方法 。
总结一下 jdk7~jdk9 Java 中接口概念的变化(相关阅读):
- 在 jdk 7 或更早版本中,接口里面只能有常量变量和抽象方法。这些接口方法必须由选择实现接口的类实现。
- jdk8 的时候接口可以有默认方法和静态方法功能。
- Jdk 9 在接口中引入了私有方法和私有静态方法。
相关文章
- Java ArrayList和LinkedList
- 可能是把Java内存区域讲的最清楚的一篇文章
- java 上传文件接口_Java接口实现文件上传
- java怎么调用.asmx_Java调用Webservice(asmx)的例子
- JetBrains 官宣:2022.3 版本开始必须 Java 17!!
- java list去重_JAVA基础-List去重的6种方式[通俗易懂]
- java是面向对象还是面向过程_Java面向对象编程和面向过程编程的区别[通俗易懂]
- java笔试题_一道简单的 Java 笔试题,但值得很多人反思
- java启动器_JAVA基础:Java 启动器如何查找类
- java 正则表达式语法_JAVA正则表达式语法大全
- java extends runtimeexception_Java中RuntimeException和Exception的区别
- 【说站】java中HashSet的使用特点
- 【说站】java抽象类和接口的区别探究
- java webservice接口开发教程_JAVA入门教程
- 【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 )
- Java多线程实现文件快速切分详解编程语言
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- 解决Linux下重启Java程序的方法(linux重启java)
- 让Java桥接Linux新世界的重要性(java链接linux)
- Linux平台上C语言接口调用Java语言实现(linux c调java)
- Java实现Redis计数器功能(redis计数 java)