帮忙么网 > JAVA > 当前页面

接口和抽象类的区别?

2025-01-10 NEW个对象

接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:

1.定义关键字不同:接口使用关键字 interface 来定义,抽象类使用关键字 abstract 来定义。
2.继承或实现的关键字不同:接口使用 implements 关键字定义其具体实现,抽象类使用 extends 关键字实现继承。
3.类型扩展不同:抽象类是单继承,而接口是多继承
4.属性访问控制符不同:接口中的属性默认是 public static final 修饰的,抽象类中的属性访问控制符无限制,可为任意控制符
5.方法控制符不同:接口中方法的默认控制符是 public,并且不能定义为其他控制符,抽象类中的方法控制符无限制,其中抽象方法不能使用 private 修饰
6.方法实现不同:JDK8前接口中普通方法不能有具体的方法实现,在JDK8之后 static 和 default 方法必须有方法实现;抽象类中普通方法可以有方法实现,抽象方法不能有方法实现
7.静态代码块使用不同:接口中不能使用静态代码块,抽象类中可以使用静态代码块

相关文章

  • 什么是反射机制?为什么慢?

    反射机制是指在运行时能获取到自身信息,只要给出类名,就可以访问类的属性和方法。

    NEW个对象 2025-01-09

  • 如何创建线程池?

    1、通过ExecutorService,

    NEW个对象 2025-02-19

  • 线程同步与线程安全的区别?

    线程同步是指在多线程环境中,通过某种机制来协调多个线程对共享资源的访问,确保资源的访问顺序是有序和正确的。 线程安全是指多个线程访问同一资源时,不会出现数据错乱等问题;

    NEW个对象 2025-01-10

推荐文章