接口和抽象类的区别是什么? Java接口中声明的变量默认都是final的。(为什么)...
时间: 2023-06-20 21:04:54 浏览: 147
Java 接口和抽象类区别
3星 · 编辑精心推荐
接口和抽象类都是用来实现多态性的机制,但是它们之间还是有一些区别的。
区别如下:
1. 接口中的所有方法默认都是抽象的,而抽象类中可以有非抽象的方法。
2. 接口中只能定义常量和抽象方法,而抽象类中可以定义变量、常量、抽象方法和非抽象方法。
3. 接口中的方法都是 public 的,而抽象类中的方法可以是 public、protected 或者默认的访问级别。
4. 类可以实现多个接口,但是只能继承一个抽象类。
Java接口中声明的变量默认都是final的,这是因为接口的主要作用是定义一些方法的规范,而不是存储数据。所以在接口中定义的变量都是常量,即使不加final关键字,编译器也会自动加上final关键字。这样就可以保证接口中定义的变量在实现类中不被修改,从而保证了接口的规范性和稳定性。
阅读全文