接口类和抽象类的区别
-
主要的区别是Java接口的方法是隐式抽象的,不能实现。Java抽象类可以有实现默认行为的实例方法。
-
在Java接口中声明的变量默认是final。抽象类可以包含非最终变量。
-
默认情况下,Java接口的成员是公共的。Java抽象类可以具有通常的类成员风格,如private、protected等。
-
Java接口应该实现使用关键字“实现”;Java抽象类应该使用关键字“extends”进行扩展。
-
一个接口只能扩展另一个Java接口,一个抽象类可以扩展另一个Java类并实现多个Java接口。
-
一个Java类可以实现多个接口,但它只能扩展一个抽象类。
-
接口是绝对抽象的,不能被实例化;Java抽象类也不能被实例化,但是如果存在main()则可以被调用。
-
与java抽象类相比,java接口很慢,因为它需要额外的间接性。