- default,static不可作为主要的设计模式,这个只是补救措施。
demo1 接口中追加普通方法 接口定义方法加上default,子类实现就不是非得覆写了
interface IMessage {
public String message();// 抽象方法,abstract省略,获取消息内容
public default boolean connect(){// 加上default,不是非得继承的类再覆写
System.out.println("建立MLDN订阅消息连接通道.");
return true;
}
}
class MessageImpl implements IMessage {// 实现接口
public String message(){// 覆写抽象方法
return "www.mldn.cn";
}
}
public class HelloWorld {
public static void main(String args[]){
IMessage msg = new MessageImpl();// 通过子类实例化接口
if(msg.connect()){ // 接口定义的default方法;
System.out.println(msg.message());
}
}
}
demo2 接口里可以定义static方法,就可以通过接口直接调用了
interface IMessage {
public String message();// 抽象方法,abstract省略,获取消息内容
public default boolean connect(){// 加上default,不是非得继承的类再覆写
System.out.println("建立MLDN订阅消息连接通道.");
return true;
}
public static IMessage getInstance(){// 定义static方法,可以通过接口名称调用
return new MessageImpl();//获得子类对象
}
}
class MessageImpl implements IMessage {// 实现接口
public String message(){// 覆写抽象方法
if(this.connect()){
return "www.baidu.com";
}
return "没有消息发送";
}
}
public class HelloWorld {
public static void main(String args[]){
IMessage msg = IMessage.getInstance();// 实例化接口子类对象
System.out.println(msg.message());// 调用方法
}
}
标签:String,default,IMessage,9.8,接口定义,加强,static,message,public
From: https://www.cnblogs.com/pansidong/p/17471475.html