9.8 接口定义加强
- 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());// 调用方法
}
}
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2022-06-10 nodejs 定时器
2022-06-10 nodejs 操作mysql数据库,简单示例
2021-06-10 密码至少8位,包括数字、大小写字母和特殊字符三种及以上
2020-06-10 正在连接 cn.archive.ubuntu.com (91.189.91.39)] [正在连接 security.ubuntu.co.....问题的解决