나는이 인터페이스를인터페이스 및 공유 구현
public interface IColumn
{
bool IsVisible {get;set;}
bool IsGroupBy { get; set; }
Type CLRType { get; set; }
string GetGroupByString();
string GetFilterString();
}
을하고 난 구현이 정확히 동일 처음 3 개 속성에 대한 그것으로부터 상속 클래스를 가지고있다. string GetGroupByString();
이행을위한
그래서 나는 모든 회원을 IColumn
인터페이스를 상속 구현 ColumnBase
라는 추상 클래스를 만들어 내가 INotifyPropertyChanged
를 구현해야하기 때문에 백업 필드를 추가
2를 제외한 모든 클래스에 대해 동일합니다.
그리고 내 클래스를 ColumnBase에서 상속 받았으며 같은 의미가 아닌 임 플리 멘 테이션을 오버라이드했습니다.
인터페이스 및 추상 클래스에 대한 경험이 매우 부족합니다. 인터페이스와 클래스를 상속 한 클래스가 있고 모든 속성 및 기능이 아닌 일부 속성의 구현이 동일하다는 것을 알았 으면합니다. 추상 클래스를 만들고 기본 구현을두고 특수 구현 클래스에 재정의합니까?
예, 좋은 해결책 인 것 같습니다. 'virtual'으로 오버라이드 할 수있는 메소드를 표시하고 서브 클래스에서 특정 서브 클래스의 동작을 지정하십시오. –
@ JeroenVannevel하지만 가상은 어떤 차이가 있습니까? – Kanka
변수를 추상화하는 방법에 따라 메소드 숨기기 문제를 방지 할 수 있습니다. [This] (http://msdn.microsoft.com/en-us/library/aa645767(v=vs.71) .aspx)는 분명히해야합니다. –