Java中的接口是否可以有实现方法?
在Java 8之前,接口中只能定义抽象方法和常量,不能有实现方法。但是从Java 8开始,接口中可以定义默认方法和静态方法,它们都可以有实现方法体。
默认方法是指在接口中定义带有默认实现的方法,如果实现类没有提供自己的实现,则会使用默认实现。默认方法的定义方法为在方法前添加default关键字。例如:
public interface MyInterface { default void myMethod() { System.out.println("This is a default method.");}}
上面的代码中,定义了一个默认方法myMethod(),它的实现方法体是输出一个字符串。
静态方法是指在接口中定义的带有静态修饰符的方法,它们的调用方式和普通的静态方法一样。静态方法的定义方法为在方法前添加static关键字。例如:
public interface MyInterface { static void myStaticMethod() { System.out.println("This is a static method.");}}
上面的代码中,定义了一个静态方法myStaticMethod(),它的实现方法体也是输出一个字符串。
需要注意的是,接口中的默认方法和静态方法都可以有方法体,但是抽象方法仍然没有方法体。如果接口中的方法没有方法体,则实现类必须提供自己的实现。如果接口中的方法有方法体,则实现类可以选择是否提供自己的实现。
网友评论