나는 상속하고 싶은 클래스가있다. ExpenseForm은 스프레드 시트에서 상속해야합니다. 스프레드 시트는 제 3자가 제공합니다. 변경할 수 없습니다.클래스를 상속 받지만 대개 정적 메서드로 생성됩니까?
그러나 부모 클래스의 인스턴스는 일반적으로 정적 방법으로 생성됩니다
Spreadsheet myExpenses = Spreadsheet.Open(filename);
(그리고 스프레드 시트는 IDisposable을 구현, 그래서 위의 문이 사용 섹션 상단에 실제로,하지만 난 생각하지 않습니다 정말이 영향을 미칩니다.)
내가 스프레드 시트에서 상속 ExpenseForm.Open()가 SPR을 반환하기 때문에, 물론,
ExpenseForm myExpenses = ExpenseForm.Open(filename);
이 실패 갖고 싶습니다 eadsheet 개체.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 어쩌면 확장 방법일까요? (나는 그 경험이 없다.)
나는 다른 방향으로 갔다. ExpenseForm에는 이제 스프레드 시트의 인스턴스가 있습니다. (일을 끝낼 때 정리할 일회용 객체를 추적해야하기 때문에 좀 더 복잡해집니다.)하지만 원래 상속 문제를 해결할 방법이없는 것처럼 보입니다.
SpreadSheet의 파생물이 아닌 것 같습니다. 당신의 장소에서 나는 그것을 ExpenseForm의 속성으로 만들 것입니다. –