나는 추상 클래스 (Abs
)에서 상속 한 여러 클래스 (Sub1
, Sub2
, Sub3
)를 가지고 있습니다. 모든 하위 클래스에는 정적 속성과 같은 모든 인스턴스에 대해 동일한 여러 속성 (size
, delay
등)이 있습니다. 코드의 중복을 피하고 한 곳에서만 초기화하기 위해 이러한 모든 하위 클래스 속성 (및 접근 자)을 다시 그룹화하고 싶습니다. 가능한가? 이 솔루션으로여러 클래스의 정적 속성을 한 곳에서 초기화 (Java)
Sub1 sub1 = new Sub1();
int size = Sub1.getSize(); // size == 1000
Sub1.setSize(500);
Sub2.setSize(700);
size = sub1.getSize(); // size == 500
size = Sub1.getSize(); // size == 500
size = Sub2.getSize(); // size == 700
:
public abstract class Abs {
protected static final int DEFALUT_SIZE = 1000;
protected static final int DEFALUT_DELAY = 1000;
}
class Sub1 extends Abs {
private static int size;
private static int delay;
public Sub1() {
size = DEFALUT_SIZE;
delay = DEFALUT_DELAY;
}
public void setSize(int size) { this.size = size; }
public int getSize() { return size; }
public void setDelay(int delay) { this.delay = delay; }
public int getDelay() { return delay; }
}
class Sub2 extends Abs {
private static int size;
private static int delay;
public Sub1() {
size = DEFALUT_SIZE;
delay = DEFALUT_DELAY;
}
public void setSize(int size) { this.size = size; }
public int getSize() { return size; }
public void setDelay(int delay) { this.delay = delay; }
public int getDelay() { return delay; }
}
class Sub3 extends Abs {
/* Same code here */
}
내가 다음을 수행 싶습니다 :
는 여기에 내가 원하는 동작을 얻을하도록 강요하고 무엇을 보여 코드의 샘플입니다 각 하위 클래스에서 동일한 코드를 모두 다시 작성해야합니다.
는 내가 정적 속성이 추상 클래스에서 그렇게하기 때문에 불가능 상속되지 않은 것을 알게...
아마도 설명 할 코드를 게시 할 수 있습니다. –
구체적인 사례가 무엇인지 잘 모르겠지만 부모 클래스 Ab에 모든 정적 변수 및 메소드를 배치 할 수 있습니다. 정적 메서드를 재정의한다는 의미입니까? 그렇다면 Java에서는 불가능합니다. –
사용할 수있는 옵션은 실제로 클래스를 사용하는 방법에 따라 다릅니다. –