그래서이 코드가 있습니다object.super()는 무엇을합니까? 국가를 만드는 방법?
public class A {
private State _state;
public abstract class State {
protected void setState(State newState) {
_state = newState;
}
}
public A() {
_state = new AbstractState(this);
}
}
public abstract class AbstractState extends A.State {
AbstractState(A a) {
a.super();
}
}
을 그리고 나는 그것이 어떻게 작동하는지 이해하기 힘든 시간을 보내고 있습니다.
따라서 A object
이 생성되면 A object
을 매개 변수로 사용하여 AbstractState
개체가 생성됩니다. 그 A object
을받는 AbstractState
생성자는 a.super()
을 호출합니다.
제 생각에 a.super()
은 A a
이라는 수퍼 클래스의 construtor를 호출합니다. 바로 Object
입니다. 그래서 요점은 무엇입니까?
나는 AbstractState
이 추상 클래스라는 것을 알고있다. 하위 클래스는 다음과 같습니다.
public class StateOne extends AbstractState {
StateOne(A a) {
super(a);
}
}
질문은 여전히 있습니다.
object.super()에 대한 설명이 없습니다. 그것은 super()와 동일하지만 객체를위한 것입니까? 아니면 Object가있는 클래스의 슈퍼입니까? – Myntekt
그것은'StateOne'의 수퍼 클래스의 생성자를 호출합니다. –
나는 그것이 AbstractState에서 무엇을 의미 하는지를 의미했다. 그래서'a.super()'에 – Myntekt