지금 당장 일부 코드를보고 있는데 조금 혼란 스럽습니다. 이 클래스는 인터페이스는 아니지만 그 메소드가 정의되지 않은 이유는 무엇입니까? 또한, bedsides 메서드 서명, 거기에 정기적 인 속성이 있습니다. 매우 혼란스러워! 당신은 abstract
과 방법을 표시 할 수 있습니다 다음은 abstract
클래스일반 클래스에는 메서드 서명 (예 : 인터페이스) 만 포함될 수 있습니까?
을하지만 왜 그렇게 할 것
지금 당장 일부 코드를보고 있는데 조금 혼란 스럽습니다. 이 클래스는 인터페이스는 아니지만 그 메소드가 정의되지 않은 이유는 무엇입니까? 또한, bedsides 메서드 서명, 거기에 정기적 인 속성이 있습니다. 매우 혼란스러워! 당신은 abstract
과 방법을 표시 할 수 있습니다 다음은 abstract
클래스일반 클래스에는 메서드 서명 (예 : 인터페이스) 만 포함될 수 있습니까?
을하지만 왜 그렇게 할 것
아니요, 표시된대로 유효하지 않으므로 컴파일하는 것으로도 충분히 입증 할 수 있습니다. 클래스가 구현되지 않은 메서드를 포함하려면 abstract
으로 선언해야하며 구현되지 않은 각 메서드에도 동일하게 적용됩니다.
abstract
클래스는 개념적으로 인터페이스와 유사하지만 구현을 포함 할 수도 있습니다. 이는 일부 메소드가 상속 계층 구조 전체에서 공통 구현을 공유 할 수있는 시나리오에 유용하지만 다른 일부 메소드는 하위 유형으로 구현 될 때 의미가 있습니다.
방법 extern
으로 표시 또는 partial
도 몸을 결여 수 있지만 (이 네이티브 코드로 구현되도록) extern
방법은 상호 운용성 일반적이며, partial
방법이 다른 .cs
파일에 구현 될 것이다 (그리고에서만 선언 할 수 있습니다 등급은 partial
으로 표시).
제쳐두고 자동 (백 그라운드 필드가 생성되고 get/set 메서드가 해당 필드를 반환하거나 설정하는 것을 의미합니다.
ABSTRACT 클래스를 표시했다면 결코 묻지 않을 것입니다. 그는하지 않았기 때문에 나는 뭔가를 놓친다 고 생각했다. 그래서, 거기에 실수가 있다는 것을 안심시켜 주시겠습니까? – Richard77
@ Richard77 : 예, 코드가 컴파일되지 않습니다 (직접 시도하십시오. 몇 초 정도 소요됩니다). 코드 샘플을 기반으로 추상/부분 클래스에 대한 지식은 전혀 추측하지 않았습니다. –
을 돕는
public class MyClass
{
public string Foo(string str1);
public string Bar(string str, int i);
public string myProperty { get; set; }
}
감사합니다? 기본 클래스에 코드가 없으면 인터페이스를 사용하십시오.
아마 추상적입니까? 프로그래머는 자신 만의 서브 클래스를 만들 것을 기대한다. – KingCronus
컴파일하려고했을 때 어떤 일이 발생 했습니까? –