版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013379717/article/details/89447126
一、说明
Java 8 新增了接口的静态方法和默认方法。即接口可以有实现方法,而且不需要实现类去实现其方法,通过static和default关键字实现
静态方法和默认方法的引进,解决了接口一旦发生修改将与现有的实现不兼容的问题
二、示例
- 1、接口
package com.xl.infc;
public interface Employee {
/**
* 抽象方法 实现类必须重写,必须通过实现类的实例来调用
*/
public void say();
/**
* 静态方法 只能通过接口的接口名来调用,实现类可以互不冲突的定义相同的方法并通过实现类的类名来调用
*/
public static void work() {
System.out.println("干活");
}
/**
* 默认方法 必须通过实现类的实例来调用,可以重写,但不能再加default关键字,且将覆盖接口中的实现
*/
public default void role() {
System.out.println("员工");
}
}
- 2、实现
package com.xl.infc;
public class Programmer implements Employee {
@Override
public void say() {
System.out.println("上班");
}
/**
* 实现类可以定义的和接口相同的静态方法,通过类名来调用
*/
public static void work() {
System.out.println("撸代码");
}
/**
* 重写接口的默认方法,不能再用default关键字修饰,且将覆盖接口中的实现,且必须通过实例来调用
*/
@Override
public void role() {
System.out.println("程序员");
}
public static void main(String[] args) {
Employee.work();
Programmer.work();
Programmer p = new Programmer();
p.say();
p.role();
}
}