[java]질문 입니다.. 왜 에러가 나는지 이유를 ㅜㅜ....
클라우드
public class Error1
{
public static void executeError()
{
System.out.println(상위클래스 실행부분);
}
}
위를 상위 클래스로 Error1.java로 컴파일 하고,
public class Error2 extends Error1
{
public static String executeError()
{
return 자식 클래스의 실행;
}
public static void main(String[] args)
{
String s = executeError();
System.out.println(s);
}
}
다시 이것을 Error2.java로 하여 컴파일 하는데 에러가 뜹니다...
출력 결과가 자식클래스의 실행 이렇게 뜰줄 알았는데.....ㅜㅜ
지금 오버라이딩에 대해 공부중인데 문제 없지 않나요???? 계속생각해도 답이 안나와서 이렇게 올립니다..^^;
-
푸른나래
넵...찬님 ㅋㅋㅋㅋ
-
샤이
넹 ^_^ 프로토타입(?)이 같아야만 오버라이딩이 되죠~ ㅋㅋ ^_^
-
해가빛
초보자라, 수다님 말씀대로 열~~시미 해보았으나,,,,,
extends 로 상속을 했기에 함수 호출을 위한 선언은 필요없다고 하는군요
오버라이딩 시에는 반환, 변수타입 등이 같아야 한답니다....
상위 클래스를 string로 바꿔 코딩하던가, 자식을 void로 바꾸니 제대로 오버라이딩이 되었습니다...
사건 종료... 역시 기초에는 독학은 시간이 많이 걸리네요...ㅡㅡ; 선생이 필요해!!! -
레온
String s = executeError(); 에서 executeError() 는 클래스에 속한 함수 입니다.
근데 그 함수를 호출하기 위해서는 클래스의 선언이 필요하겠지요?
클래스 함수 부르는 기초 부분을 다시 공부해 보세요