1、三大体育媒体互联网平台,由于资源独占,有些类别的运动只能在某个平台上进行独播
2、足球赛事只能在平台A上进行独播,篮球赛事只能在平台B上进行独播,排球赛事只能在平台C上进行独播,其他赛事可以在几个平台上进行直播;
3、要求
( 1)三个体育直播平台EA、EB、EC设计为三个类
( 2)设计一个体育赛事的类SportsGame
(3)三个赛事设计为体育赛事的三个子类,分别作为三个平台的内部
(3)其他羽毛球、乒乓球等赛事设计为普通的类,继承自体育賽事( 4)可以根据不同赛事的特点,为其设计内部的成员变量和成员函数(5)利用匿名类新增其他的体育赛事
( 6)在main函数中进行测试
( 7)增加比赛规则接口IRule, 令所有的体育赛事实现该接口,重新制定各自的比赛规则
public class Demo {
public static void main(String[] args) {
EB eb = new EB();
EB.Basketball basketball = eb.new Basketball(10);
basketball.game();
basketball.setCoach("姚明");
basketball.strategy();
// 匿名类
new SportsGame(5) {
@Override
public void rule() {
System.out.println("比赛规则...");
}
@Override
protected void game() {
rule();
System.out.println(getSportsman() + "人参加短跑运动");
}
}.game();
}
}
abstract class SportsGame implements IRule {
// 运动员人数
private int sportsman;
public SportsGame() {
}
public SportsGame(int sportsman) {
this.sportsman = sportsman;
}
public int getSportsman() {
return sportsman;
}
public void setSportsman(int sportsman) {
this.sportsman = sportsman;
}
protected abstract void game();
}
class EA {
public EA() {
System.out.println("欢迎观看A平台直播...");
}
// 足球
class Football extends SportsGame {
public Football(int sportsman) {
super(sportsman);
}
@Override
protected void game() {
System.out.println(getSportsman() + "人参加足球赛事");
}
@Override
public void rule() {
}
}
}
class EB {
public EB() {
System.out.println("欢迎观看B平台直播...");
}
// 篮球
class Basketball extends SportsGame {
private String coach;
public Basketball(int sportsman) {
super(sportsman);
}
public String getCoach() {
return coach;
}
public void setCoach(String coach) {
this.coach = coach;
}
@Override
protected void game() {
System.out.println(getSportsman() + "人参加篮球赛事");
}
public void strategy() {
System.out.println(String.format("教练 [%s] 商量策略", coach));
}
@Override
public void rule() {
}
}
}
class EC {
public EC() {
System.out.println("欢迎观看C平台直播...");
}
// 排球
class Volleyball extends SportsGame {
public Volleyball(int sportsman) {
super(sportsman);
}
@Override
protected void game() {
System.out.println("排球赛事");
}
@Override
public void rule() {
}
}
}
// 乒乓球
class PingPong extends SportsGame {
public PingPong(int sportsman) {
super(sportsman);
}
@Override
protected void game() {
System.out.println("乒乓球赛事");
}
@Override
public void rule() {
}
}
interface IRule {
void rule();
}