-----------------------------문제-----------------------
abstract class Vehicle{
String name;
abstract public String getName(String val);
public String getName(){
return "Vehicle name :" + name;
}
}
class Car extends Vehicle{
public Car(String val){
name = super.name = val;
}
public String getName(String val){
return "Car name :" + val;
}
public String getName(byte val[]){
return "Car name :" + val;
}
}
public class Test{
public static void main(String[] args){
Vehicle obj = new Car("Spark");
System.out.printf(obj.getName());
}
}
----------------------------------------------------------------------
답안: Vehicle name :Spark
해설 좀 부탁드립니다.
안녕하세요 길벗수험서 운영팀입니다.
3회 기출문제에 대한 해설은 4,5회 시험 1주일전 메일링 자료에서 확인하실 수 있습니다.
간단히 해설하자면 obj 객체가 생성될 시 생성자를 통해 'Spark'가 부모 클래스와 자식 클래스의 name 변수에 저장되었고, 이후 obj.getName() 메소드가 호출된 형태입니다.
동일한 이름의 메소드가 있으나 이는 서로 다른 메소드로, 그 구분은 인수의 타입이나 개수로 구분이 가능합니다.
3개의 메소드(상속 포함)
getName()
getName(String val)
getName(byte val[])
중 호출된 것은 첫번째에 해당하므로(인수없는 getName 메소드) 이를 수행하면 정답과 같은 결과가 나오게 됩니다.
행복한 하루되세요 :)
-
관리자2020-11-09 10:09:02
안녕하세요 길벗수험서 운영팀입니다.
3회 기출문제에 대한 해설은 4,5회 시험 1주일전 메일링 자료에서 확인하실 수 있습니다.
간단히 해설하자면 obj 객체가 생성될 시 생성자를 통해 'Spark'가 부모 클래스와 자식 클래스의 name 변수에 저장되었고, 이후 obj.getName() 메소드가 호출된 형태입니다.
동일한 이름의 메소드가 있으나 이는 서로 다른 메소드로, 그 구분은 인수의 타입이나 개수로 구분이 가능합니다.
3개의 메소드(상속 포함)
getName()
getName(String val)
getName(byte val[])
중 호출된 것은 첫번째에 해당하므로(인수없는 getName 메소드) 이를 수행하면 정답과 같은 결과가 나오게 됩니다.
행복한 하루되세요 :)