建设一个网站可以采用那几方案,做个外贸网站大概多少钱,陕西省建设监理协会证书查询网站,微信商城与网站一体记录#xff1a;477
场景#xff1a;Java的关键字interface应用#xff0c;一个接口#xff0c;多个实现类。面向接口编程#xff0c;把业务逻辑线提取出来作为接口#xff0c;具体的业务实现通过该接口的实现类来完成。
版本#xff1a;JDK 1.8。
1.一个Java接口
(…记录477
场景Java的关键字interface应用一个接口多个实现类。面向接口编程把业务逻辑线提取出来作为接口具体的业务实现通过该接口的实现类来完成。
版本JDK 1.8。
1.一个Java接口
(1)说明
使用Java关键字interface修饰的类型就是接口。
接口里面方法一般没有函数体实际就是抽象方法。
比如String announceStart();
接口里面方法有函数体情况一般使用default关键字修饰。
比如default String holdSportGame() { ...}
(2)代码
public interface SportContest {//开场仪式String announceStart();//举行比赛ResultDto playGame();//颁奖仪式String announceEnd(ResultDto resultDto);//举行体育赛事default String holdSportGame() {String result01 announceStart();ResultDto result02 playGame();String result03 announceEnd(result02);return result03;}
}
2.多个实现类实现同一个Java接口
实现Java接口使用implements关键字。
(1)实现类TableTennisContest
public class TableTennisContest implements SportContest {//赛事任务private TaskDto taskDto null;public TableTennisContest(TaskDto taskDto) {this.setTaskDto(taskDto);}Overridepublic String announceStart() {TaskDto taskDto this.getTaskDto();System.out.println(举行乒乓球比赛入场仪式:);System.out.println(步骤一: taskDto.getEventName() 队员入场.);System.out.println(步骤二: 裁判员、教练员等各就各位.);return 乒乓球比赛进行中;}Overridepublic ResultDto playGame() {TaskDto taskDto this.getTaskDto();System.out.println(举行乒乓球比赛: taskDto.getContent() ,选手们在奋力搏击.);return ResultDto.builder().teamName(中国乒乓球队).content(女单决赛冠军).build();}Overridepublic String announceEnd(ResultDto resultDto) {System.out.println(举行颁奖仪式: );System.out.println(步骤一: 为 resultDto.getTeamName() resultDto.getContent() 颁发金牌.);System.out.println(步骤二: 升中华人民共和国国旗,奏中华人民共和国国歌.);return 乒乓球比赛圆满结束;}public TaskDto getTaskDto() {return this.taskDto;}public void setTaskDto(TaskDto taskDto) {this.taskDto taskDto;}
}
(2)实现类SwimmingContest
public class SwimmingContest implements SportContest {//赛事任务private TaskDto taskDto null;public SwimmingContest(TaskDto taskDto) {this.setTaskDto(taskDto);}Overridepublic String announceStart() {TaskDto taskDto this.getTaskDto();System.out.println(举行游泳比赛入场仪式:);System.out.println(步骤一: taskDto.getEventName() 队员入场.);System.out.println(步骤二: 裁判员、教练员等各就各位.);return 游泳比赛进行中;}Overridepublic ResultDto playGame() {TaskDto taskDto this.getTaskDto();System.out.println(举行游泳比赛: taskDto.getContent() ,选手们在冲刺记录.);return ResultDto.builder().teamName(中国游泳队).content(男子组200米决赛冠军).build();}Overridepublic String announceEnd(ResultDto resultDto) {System.out.println(举行颁奖仪式: );System.out.println(步骤一: 为 resultDto.getTeamName() resultDto.getContent() 颁发金牌.);System.out.println(步骤二: 升中华人民共和国国旗,奏中华人民共和国国歌.);return 游泳比赛圆满结束;}public TaskDto getTaskDto() {return this.taskDto;}public void setTaskDto(TaskDto taskDto) {this.taskDto taskDto;}
}
3.示例测试
(1)说明
执行接口函数时需先创建接口实现类的实例对象。
(2)代码
public class ApplyInterface {// 主函数入口public static void main(String[] args) {System.out.println(*******************************);holdSportGame(new TableTennisContest(TaskDto.builder().eventName(乒乓球比赛).content(女单决赛).build()));System.out.println(*******************************);holdSportGame(new SwimmingContest(TaskDto.builder().eventName(游泳比赛).content(男子200米决赛).build()));System.out.println(*******************************);}// 面向接口编程public static void holdSportGame(SportContest sportContest) {sportContest.holdSportGame();}
}
(3)输出结果
*******************************
举行乒乓球比赛入场仪式:
步骤一: 乒乓球比赛队员入场.
步骤二: 裁判员、教练员等各就各位.
举行乒乓球比赛: 女单决赛,选手们在奋力搏击.
举行颁奖仪式:
步骤一: 为中国乒乓球队女单决赛冠军颁发金牌.
步骤二: 升中华人民共和国国旗,奏中华人民共和国国歌.
*******************************
举行游泳比赛入场仪式:
步骤一: 游泳比赛队员入场.
步骤二: 裁判员、教练员等各就各位.
举行游泳比赛: 男子200米决赛,选手们在冲刺记录.
举行颁奖仪式:
步骤一: 为中国游泳队男子组200米决赛冠军颁发金牌.
步骤二: 升中华人民共和国国旗,奏中华人民共和国国歌.
*******************************
4.辅助实体类
(1)说明
在实体类中使用注解Data等来自lombok-1.18.24.jar。
(2)TaskDto
Data
Builder
AllArgsConstructor
NoArgsConstructor
public class TaskDto implements Serializable {//赛事名称private String eventName;//活动内容private String content;
}
(3)ResultDto
Data
Builder
AllArgsConstructor
NoArgsConstructor
public class ResultDto implements Serializable {//竞赛队伍private String teamName;//比赛成绩private String content;
}
以上感谢。
2023年9月14日