제 질문은 자바와 관련이 없지만 디자인 패턴 질문과 같다고 생각합니다. 나는 예제를 설명하려고합니다 :두 가지 다른 동작으로 동일한 방법을 사용합니까?
나는 두 클래스 (A와 B)가, B는 A. 에게 확장 된 두 개의 클래스는 다음과 같이 :
public class A {
protected int method1() {
System.out.println(method3());
}
protected int method3() {
return 3;
}
}
합니다.
public class B extends A {
protected void method2() {
//Calling method1
method1(); // Output : 3
//Calling method1 another time but method3 needs to be slightly different
method1(); // Output needs to be : 6
}
}
그래서 두 번 동일한 메서드를 호출하고 싶습니다. 두 번째 호출 할 때 method3() 내부를 수정하고 싶습니다. 분명히 method1은 int를 출력하는 것이 아니라 더 많이 수행하기 때문에 두 개의 다른 method1()을 정의하고 싶지는 않습니다.
두 번째의 Method3는 다음과 같이 수 :
protected int method3bis() {
return 2*3;
}
정말 모든 방법을 통해 인수의 어떤 종류를 통과하지 않도록하고 싶습니다, 같이 무언가 :
protected int method1(int arg) {
if(arg == 0)
System.out.println(method3());
if(arg == 1)
System.out.println(method3bis());
}
을 이 일을하는 좋은 방법이 있습니까? 미리 감사드립니다 :-)
B 클래스에서'method1'을 덮어 쓰길 원합니다. –
method1에 카운터를 추가 할 수 있습니다.이 카운터는 사용될 때마다 증가하고 해당 카운터를 두 번째로 호출 할 수 있습니다. – ryekayo
@ Zéychin이 동의했습니다. 재정의에 새 비헤이비어를 작성해야합니다. –