接口:
抽象类:
以下提到的其实算不上是区别,只是把接口、抽象类的一些特殊之处例举出来,供读者分辨。
1、接口方法权限默认为public,abstract。(当然在代码中显式也没错误)
2、接口只能有抽象方法,而抽象类可以有非抽像方法与抽象方法。
3、类可以实现(implements)多个接口,同样的接口也可以继承多个接口(用extends关键字。)接口能够继承多个接口是因为接口中的方法都是抽象方法,实现了该接口的类必须且只能为特定的方法提供一种实现。不存在不明确该调用哪个接口中的方法的问题。
4、 抽象类不能被实例化,但它具有构造函数,这是为了保证子类能够正常实例化。
5、接口可以嵌套在接口或类中。
6、接口可以作为参数。(只要实现了该接口的类都能作为这样的参数传入)
7、接口中定义的成员变量默认都是static final的。(也可以显示)
8、接口和抽象类相同的是,实现他们的类必须重写他们全部的抽象方法。