java接⼝可以写⽅法体吗_Java8新特性(四)------接⼝中可以
定义⽅法体
Java8⽐起以前的版本存在很⼤的变化,我们知道在之前的版本中接⼝只能是定义抽象的⽅法,是不能定义实现的,但是在java8环境下,这个不可能已经变得可能。下⾯我们通过例⼦⼀步⼀步的来讲解下java8的⽤法。
定义静态⽅法
在接⼝中定义的静态⽅法,不是抽象的,具体实现的,可以直接使⽤接⼝名称调⽤。
/**
* Created by xiaona on 2016/5/30.
*/
public interface TestMethod {
public static void method() {
/**
* 1、定义⼀个静态的带有⽅法体的⽅法
* 2、接⼝不能创建对象,调⽤静态⽅法不需要对象
* 3、接⼝名调⽤
*/
System.out.println("接⼝中静态⽅法");
}
调⽤:
public static void main( String[] args ) {
/**
* 接⼝名称,直接调⽤---TestMethod(接⼝名称)
*/
定义普通⽅法
在接⼝中不仅仅是可以定义静态⽅法,还可以进⾏普通⽅法的定义,不过不是抽象,java8中,可以使⽤关键字default
//定义接⼝中默认⽅法
/**
* 不同于静态⽅法,默认⽅法是⼀个⾮静态⽅法
* 对于⾮静态⽅法,只能通过对象进⾏调⽤
* 但是接⼝是不能创建对象的名故⽽我们需要⼦类来实现接⼝
*/
public default void methodDefault(){
System.out.println();
}
}
调⽤:
// 使⽤⼦类对象,调⽤接⼝中的默认⽅法
Inter8Impl inter8 = new Inter8Impl();
// 使⽤多态的特点,接⼝指向⾃⼰的实现类,调⽤对应的⽅法
TestMethod i88=new Inter8Impl();
}
此外,值得注意的是:⾯向对象中,java只是⽀持单继承,不⽀持多继承,⼀个类只能继承⼀个类,
java接口可以创建对象吗(1)如果多个接⼝定义了同样的静态⽅法,
即使存在实现类,同时实现多个接⼝,仍然是不可使⽤实现类名调⽤接⼝的⽅法
(2)如果多个接⼝定义了同样的默认⽅法
实现类实现多个接⼝时,必须重写掉默认⽅法,否则编译失败。
在接⼝中可以定义实现的⽅法体是java8的⼀⼤特性,可以定义多个静态或者默认的⽅法,静态必须加上static,默认⽅法必须加上default 关键字。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论