接口是一种特殊的抽象类,为了克服java单继承的缺点而被引入。通常可以通过一个类实现多个接口的方式来达到多重继承的目的。
接口和继承的区别简而言之就是“has-a”和“is-a”的区别。
那么接口中都能写入哪些东西呢?
1.成员变量。接口中可以定义成员变量,但都默认被public static final来修饰。
2.成员方法。接口中只允许public,abstract,default,static,public abstract , public static,来作为修饰接口中的方法,其它是不允许的。尤其要注意的是,静态方法必须要有实现
3.啥都不写。这种接口被称为标识接口,类似车的标志,用来标明实现类属于一个特定的类型,如java类库中的Cloneable和Serializable。
使用方法:
class 类 implements 接口A,接口B
interface 接口A extends 接口B(接口也是可以继承哦)
接口与抽象类的异同:
1.接口中的方法只能定义,但抽象类既能定义又能实现。
2.只要类中包含抽象方法,就是抽象类。被声明为抽象的方法不能包含方法体。
3.抽象类不能被实例化。
4.接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类可以有静态的main方法。