Jdk1.8新特性 - 静态方法和默认方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
	}

}

猜你喜欢

转载自blog.csdn.net/u013379717/article/details/89447126