Java中接口体包含常量定义和方法定义两部分,接口体中只进行方法的声明,不允许提供方法的实现,所以方法的定义没有方法体;
一个类可以通过implements声明自己实现一个或者多个接口。
如果一个类实现某个接口,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体。
需要注意的是,接口中方法默认是public和abstract的,接口在生命方法时可以生列前面的关键字public和abstract,但是在类中实现该接口方法时一定要用public来修饰。
接口中的抽象方法`
可以看成能实现它的方法的
所有类的方法 的交集吗?或者是所有类的方法 的交集的一部分 //
可以这么理解
在类中重写接口时`
void a();
与
void a(){
//没有方法体
}
二者有何区别`
为什么上一个编译不能通过`
下面一个却能通过`
二者不都是空方法吗? //
原因是楼主没有弄明白方法的声明与实现,void a();只能作为一个方法的声明
//
而要实现方法就必须写成void a(){.....}这样的形式。注意接口的方法如果不是void类型,那么在类中实现该接口方法时,方法体中至少要包含一个return语句;如果是void类型,类体中可以没有任何语句。