動(dòng)物園內(nèi)有動(dòng)物和人,動(dòng)物活動(dòng)有四種行為,目前鳥類和人類都用來實(shí)現(xiàn)動(dòng)物活動(dòng)的接口,
動(dòng)物園內(nèi)有動(dòng)物和人,動(dòng)物活動(dòng)有四種行為,目前鳥
類和人類都用來實(shí)現(xiàn)動(dòng)物活動(dòng)的接口,現(xiàn)在想要讓中
國人類和鸚鵡類通過接口去依賴于人類和鳥類,如何
設(shè)計(jì)類圖并編碼實(shí)現(xiàn)。
首先,我們需要定義一個(gè)Animal接口,其中包括四種行為的方法:
```
public interface Animal {
void eat();
void sleep();
void move();
void sound();
}
```
然后,我們定義一個(gè)Bird類和一個(gè)Person類,它們都實(shí)現(xiàn)了Animal接口:
```
public class Bird implements Animal {
public void eat() {
// 鳥類吃東西的行為
}
public void sleep() {
// 鳥類睡覺的行為
}
public void move() {
// 鳥類移動(dòng)的行為
}
public void sound() {
// 鳥類發(fā)聲的行為
}
}
public class Person implements Animal {
public void eat() {
// 人類吃東西的行為
}
public void sleep() {
// 人類睡覺的行為
}
public void move() {
// 人類移動(dòng)的行為
}
public void sound() {
// 人類發(fā)聲的行為
}
}
```
最后,我們定義一個(gè)Zoo類,其中包括一個(gè)鳥類和一個(gè)人類的實(shí)例,并且可以讓中國人類和鸚鵡類依賴于人類和鳥類:
```
public class Zoo {
private Bird bird;
private Person person;
public void setBird(Bird bird) {
this.bird = bird;
}
public void setPerson(Person person) {
this.person = person;
}
public void letChinesePersonDependOnPerson() {
person.eat();
person.sleep();
person.move();
person.sound();
}
public void letParrotDependOnBird() {
bird.eat();
bird.sleep();
bird.move();
bird.sound();
}
}
```
這樣,我們就完成了類圖和代碼的設(shè)計(jì)。在使用時(shí),可以先創(chuàng)建一個(gè)Zoo實(shí)例,并分別傳入一個(gè)Bird實(shí)例和一個(gè)Person實(shí)例,然后調(diào)用相應(yīng)的方法讓中國人類和鸚鵡類依賴于人類