반응형
인터페이스와 추상 클래스
이 질문에는 이미 답변이 있습니다.
C #에서는 언제 인터페이스를 사용해야하고 언제 추상 클래스를 사용해야합니까? 결정 요인은 무엇입니까?
추상 클래스의 장점은 다음과 같습니다.
- 메소드의 기본 구현을 지정하는 기능
- 불변 검사 기능에 추가
- "인터페이스"메소드 호출 방식을 약간 더 잘 제어하십시오.
- "무료"에 대한 인터페이스와 관련되거나 관련되지 않은 동작을 제공하는 기능
인터페이스는 데이터 전달 계약일 뿐이며 이러한 기능이 없습니다. 그러나 유형은 한 클래스에서만 파생 될 수 있지만 여러 인터페이스를 구현할 수 있으므로 일반적으로 더 유연합니다.
추상 클래스와 인터페이스는 의미가 다르지만 사용법이 겹칠 수 있습니다.추상 클래스는 일반적으로 유사한 클래스의 빌드 기반으로 사용됩니다. 클래스에 공통적 인 구현은 추상 클래스에있을 수 있습니다.인터페이스는 일반적으로 클래스가 매우 유사 할 필요가없는 클래스의 기능을 지정하는 데 사용됩니다.
고려해야 할 또 다른 사항은 다중 상속이 없기 때문에 클래스가 인터페이스 / 추상 클래스에서 구현 / 상속 할 수 있지만 다른 기본 클래스에서 상속하려면 인터페이스를 사용하려는 경우입니다.
실제 질문은 인터페이스를 사용할지 아니면 기본 클래스를 사용할지입니다. 이것은 이전에 다루어졌습니다.C #에서 추상 클래스 ( "abstract"라는 키워드로 표시된 클래스)는 단순히 개체를 인스턴스화 할 수없는 클래스입니다. 이것은 단순히 기본 클래스와 인터페이스를 구별하는 것과 다른 목적을 제공합니다.참고 URL :
https://stackoverflow.com/questions/747517/interfaces-vs-abstract-classes
반응형
'Programming' 카테고리의 다른 글
파일로서의 Java 자원 (0) | 2020.07.15 |
---|---|
Eclipse : 저장시 코드를 형식화 할 수 있습니까? (0) | 2020.07.15 |
사용자가 그룹의 구성원인지 테스트하기 위해 LDAP 쿼리를 작성하는 방법은 무엇입니까? (0) | 2020.07.15 |
파이썬에서 조건부 모듈 가져 오기 (0) | 2020.07.15 |
사람들이 C / C ++에서 가정하지 않은 가정을 보여주기위한 교육 도구에는 무엇이 있습니까? (0) | 2020.07.15 |