학교 과제물 작업 중 Person 클래스를 확장 한 Person 클래스와 Student를 확장하는 정규 클래스 CollegeStudent가 있습니다. CollegeStudent는 파일에서 읽고 모든 변수 (추상 수퍼 클래스에 속한 변수 포함)를 설정합니다. 이 모든게 잘 작동합니다.Super() conundrum
그러나 추상 클래스에 생성자가 있어야하는데, 이는 해당 클래스가 입력을 독자적으로 읽을 수 없기 때문에 상황을 복잡하게 만듭니다. 그래서 지금 나는 (아마도) 생성자를 사용하여 각각의 클래스에서 데이터 필드를 설정한다고 가정하지만, 입력을 먼저 읽어야합니다. 여기서 명백한 문제는 superconstructor 호출이 CollegeStudent의 생성자에서 첫 번째 것이어야한다는 것입니다. 이게 문제 야.
모든 것을 그대로 실행 한 다음 필요한 모든 필드를 매개 변수로 사용할 수있는 다른 생성자 메서드를 가질 수 있습니다. 하지만 그 이유는 무엇인지 모르겠습니다. 왜 드라이버가 생성자를 사용하기 위해 CollegeStudent 객체를 만든 다음 첫 번째 객체의 ariables를 사용하여 다시 만들어야합니까?
그 외에도 이것이 어떻게 수행 될지 모르겠다.이 옵션은 나에게 이상하다. 요점이 무엇인지 모르겠다.
미리 감사드립니다 ...
나는이 질문을 이해하기가 어렵다고 생각한다. –
주된 문제는 디자인입니다. 생성자는 파일을 읽지 않아야합니다. 이것은 생성자의 작업이 아닙니다. 대신에 팩토리 메소드를 사용하십시오. –
과제의 임의적 제약 조건이 무엇인지 모를 때 도움이되기 어렵습니다. – climbage