강의로 돌아가기
polar

어느 부분에서 제출이 안되는지 모르겠습니다.

super클래스를 맞게 사용한거 같은데 어느부분이 틀린지 감이 안옵니다.

작성중인 코드―Bus.java
1
2
3
4
5
6
7
8
9
10
public class Bus extends Car {
    int fee;

    public Bus(String name, int number, int fee) {
        super("뛰뛰",3000);
        // super를 이용해서 Car클래스의 생성자를 이용하세요.
        this.fee = fee;

    }
}
작성중인 코드―Car.java
1
2
3
4
5
6
7
8
public class Car{
    String name;
    int number;
    public Car(String name, int number){
        this.name = name;
        this.number = number;
    }
}
작성중인 코드―BusExam.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//아래는 실행을 위한 코드입니다. 수정하지 마세요.
public class BusExam{
    public static void main(String[]args){
        Bus bus = new Bus("뛰뛰", 3000, 1050);
        if(bus.name != "뛰뛰"){
            System.out.println("bus의 name이 다릅니다.");
        }
        else if(bus.number != 3000){
            System.out.println("bus의 number가 다릅니다.");
        }
        else if(bus.fee != 1050){
            System.out.println("bus의 fee가 다릅니다.");
        }
        else{
            System.out.println("정답입니다. [제출]을 누르세요.");
        }

    }
}
1 개의 답변
이확영

super("뛰뛰",3000);로 하면 모든 Bus 객체의 name과 number가 뛰뛰와 3000이 되어버립니다.
Bus를 생성할 때 인자로 넘어온 name과 number를 사용하여 super(name, number);와 같이 하셔야 합니다.

  • -

    작성자님의 답변 덕분에 문제를 해결하였습니다. 감사합니다. 하지만 한 가지 궁금한 게 있어 질문 드립니다. super(String name, int number) 형태로 기입을 해야 하기 때문에 super("name", number)로 한다고 해도 number는 문자이기 때문에 int타입과 맞지 않으므로 오류가 발생하지 않나요?

    -―2017.08.18 11:24
  • 이확영

    Bus의 super class가 Car인데 Car의 생성자의 인자가 (String, int) 이고 Bus 생성자의 name이 String, number가 int이기 때문에 super(name, number)로 호출해도 문제가 없습니다.

    이확영―2017.08.18 11:24
  • -

    number 는 매개변수의 변수명을 넣은거니까 int 형태로 들어 갑니다.

    -―2018.03.30 16:31
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.