欢迎光临散文网 会员登陆 & 注册

9、Tom(Person)是一名大学生运动员,拥有两个身份(Role),都能做(do)些事情,但

2023-03-13 09:29 作者:酸奶公园  | 我要投稿

9、Tom(Person)是一名大学生运动员,拥有两个身份(Role),都能做(do)些事情,但做的事情各有不同。他不仅需要作为一名学生(Student)在学校读书(learn),还需要作为一名运动员(Athlete)参加长跑训练(train)。请用类图表示Tom的这种双重身份,请写出student类和athlete类的代码。

+------------------+

| Tom |

+------------------+

| -name : String |

+------------------+

| +learn() |

| +train() |

+------------------+

|

|

V

+------------------+ +------------------+

| Student | | Athlete |

+------------------+ +------------------+

| -studentNumber | | -coachName : String|

+------------------+ +------------------+

| +learn() | | +train() |

+------------------+ +------------------+

```

Student类的代码:

```

public class Student {

private String name;

private int studentNumber;

public Student(String name, int studentNumber) {

this.name = name;

this.studentNumber = studentNumber;

}

public void learn() {

System.out.println("I am a student and I am learning.");

}

}

```

Athlete类的代码:

```

public class Athlete {

private String name;

private String coachName;

public Athlete(String name, String coachName) {

this.name = name;

this.coachName = coachName;

}

public void train() {

System.out.println("I am an athlete and I am training.");

}

}

```

Tom类的代码:

```

public class Tom extends Student, Athlete {

public Tom(String name, int studentNumber, String coachName) {

super(name, studentNumber);

Athlete(name, coachName);

}

// Tom类继承了Student类和Athlete类的learn()和train()方法,无需再次定义。

}

```


9、Tom(Person)是一名大学生运动员,拥有两个身份(Role),都能做(do)些事情,但的评论 (共 条)

分享到微博请遵守国家法律