2012-03-16 3 views
0

Java 1.7의 기본 클래스를 재정의하는 데 문제가 있습니다.Java의 재정의 - 함수를 올바르게 재정의 할 수 없습니다.

내 목표는 f() 메소드를 대체하여 프로그램이 기본 클래스의 함수와 다른 함수를 사용하여 반복하도록하는 것입니다.

내 문제는 동일한 이름을 갖고 동일한 반환 유형 및 동일한 매개 변수가있는 경우에도 함수를 재정의하는 것처럼 보일 수 없다는 것입니다.

And here's the file that's trying to override the base file

Here's the base file

는 현재 코드가 나는 모든 초기 및 종료 값을 설정할 수 있습니다, 작동, 난 그냥 첫 번째 대체 할 두 번째 파일에서 함수 방법을 얻을 수 없습니다.

+6

제공된 링크를 따르지 말고 여기에 코드를 포함하십시오. –

답변

4

정적 함수를 재정의 할 수 없습니다.

3

오버라이드 (인스턴스 메소드)가 아니고, hiding (정적 메소드)입니다.

1

언급 한 바와 같이 정적 메서드를 재정의 할 수 없습니다. 메서드를 정적이 아닌 것으로 만들고 개체 인스턴스를 사용하여 계산을 수행하는 것이 좋습니다.

이와 비슷한 내용은 Runge5으로 갈 것입니다.

public static void main(String argv[]) { 
    Runge2 r = new Runge5(); 
    r.doCalculations(); 
} 

doCalculations()main()에 있던 코드를 포함 할 것이다;

아마도 최고의 디자인은 아니지만 문제를 해결할 것입니다.

+0

도움을 주셔서 감사합니다.하지만 귀하의 제안을 구현하는 데 조금 불안정합니다. 새로운 메인 코드를 doCalculations()로 마무리 한 다음 내 runge5 클래스에서 오버라이드 할 수 있습니까? – user1275115

+0

의도 한대로'f()'만 덮어 쓸 수 있습니다. doCalculations()는 동일하게 유지 될 수 있습니다. –

관련 문제