接口定义了一些方法,当已经有数万个子类去实现了这个接口,现在需要给这数万个子类实现一个公共的方法,jdk1.8之后可以在接口内实现以下两种方式实现接口内部方法声明以及具体功能实现
1 .使用defalut定义普通方法,使用对象调用
2.使用static定义方法,使用对象调用
package com.wjx.sayHello;
interface IMessage{
//使用default在接口内部普通定义方法并实现
public default void sayHi(){
System.out.println("hi, china");
}
//使用static在接口内部定义静态方法
public static IMessage getInstance(){
return new MessageImpl();
}
public void fun();
}
class MessageImpl implements IMessage{
@Override
public void fun() {
// TODO Auto-generated method stub
System.out.println("你好,世界");
}
}
public class TestDemo {
public static void main(String[] args){
IMessage msg=IMessage.getInstance();
msg.fun();
msg.sayHi();
}
}