커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
객체지향 퀴즈
undefined주차
북마크
김*영
댓글
12
추천
0
조회수
20
조회수
20
답변 완료

child class를 다음과 같이 짰는데,


public class Child extends Mankind implements walk, run, swim{

public Child(String name, int age) {

super(name, age, 5);

}

@Override

public void walk(int x, int y) {

int walkSpeed = speed;

System.out.println(name + " : ");

printMyLocation(walkSpeed, x, y);

}

@Override

public void run(int x, int y) {

int runSpeed = speed + 2;

System.out.println(name + " : ");

printMyLocation(runSpeed, x, y);

}

@Override

public void swim(int x, int y) {

int swimSpeed = speed + 1;

System.out.println(name + " : ");

printMyLocation(swimSpeed, x, y);

}

}


출력해보면 swim에서 speed가 6이 아니라 8이 출력됩니다. 제 생각에넌 run이 실행되고 swim이 실행되서 기본 speed 5에서 2가 더해지고 1이 더해져 나오는거 같은데, speed 자체는 건든적이 없고 별도의 runspeed, swimspeed를 만들어서 실행하였는데 왜 speed값이 변경되는지 잘 모르겠습니다.


printMyLocation은 무난하게 아래처럼 했습니다.


void printMyLocation(int speed, int x, int y) {

this.x = x;

this.y = y;

this.speed = speed;

System.out.println("Speed is " + speed + ", I'm on (" + x + ", " + y + ")");

}

취소
 공유
취소
댓글 0
댓글 알림
나의얼굴