문제

인터페이스에서 정적 유형의 메소드를 지정할 수없는 이유.

이것을 할 대안이 있습니까 ??

그러나 나는 추상 클래스가 주입 된 inerface 만 사용해야합니다.

/

인터페이스에서 Acess Specifier를 지정하는 데 문제가 있습니까?

인터페이스에 이벤트를 지정하고 싶고 구현 된 클래스에 의해서만 수용해야하므로 해당 이벤트에 보호 된 Acess 지정자를 원합니다.

또한 다른 클래스에서 인터페이스를 사용할 수있는 특정 기능이 있습니다.이 경우 공개 Acess 지정자를 사용할 수 있습니다.

도움이 되었습니까?

해결책

나는 당신이 어떤 언어를 겪고 있는지 모르겠지만 C#에서 마치 대답 할 것입니다.

인터페이스에서 정적 유형의 메소드를 지정할 수없는 이유. 이것을 할 대안이 있습니까 ??

정적 메소드를 무시할 수 없기 때문입니다. 당신은 무엇을 달성하려고합니까?

인터페이스의 멤버는 항상 C#에 공개됩니다. 다른 보호 수준이 필요한 경우 추상 클래스를 사용하십시오. 인터페이스에서 보호 된 이벤트의 목적은 무엇입니까? 그런 다음 인터페이스와 관련이 없습니다 (인터페이스에는 코드가 없음을 기억하십시오). 당신이 그것을 언급한다면, 구현만으로 클래스를 제기 할 수있는 경우, 이벤트를 제기 할 수있는 유일한 클래스임을 확신하십시오. 이벤트는 그런 식으로 구축됩니다. 클래스 자체만이 이벤트를 제기 할 수 있습니다. 수업에서 외부 이벤트를 제기 할 수 없습니다 (수업에 대한 방법이있는 경우 제외하고 이벤트를 제외하고).

다른 팁

인터페이스는 구현 자만 대중에게만 설명합니다. 인터페이스에 대한 유일한 액세스 수정자는 인터페이스 자체의 "내부"이며, 이는 동일한 어셈블리의 모든 멤버 또는 "InternalSvisIbleto"속성으로 알려진 구성원에게만 표시됩니다.

구현 자만 특정 이벤트를보아야한다면 해당 이벤트는 어떤 종류의 기본 클래스에 있어야합니다.

정적 방법은 절차 프로그래밍의 잔재입니다. 그들은 그들의 사용을 가지고 있지만 (예 : 확장 방법 참조) 실제로 OOP와는 관련이 없습니다.

나는 첫 번째 질문으로 당신이 의미하는 바에 대해 상실하지만 인터페이스에서 보호 된 사용에 대한 두 번째 질문은 "아니오"입니다. 인터페이스는 해당 객체와 통신 할 수있는 "인터페이스"(즉 공개 메소드)를 지정하기 때문에 "인터페이스"라고합니다.

OOP에 대한 나의 경험은 ActionScript 3과 관련이 있지만, 그것이 상대적이라고 확신합니다.

정적 메소드는 지나치게 반대 할 수 없으며 클래스가 조상 클래스를 연장 할 때 사용되지 않습니다.

인터페이스가 공개 메소드를 설정하는 데 사용되므로 액세스 수정자는 인터페이스에서 사용되지 않습니다.

AS3에서 인터페이스는 단지 블록이 없지만 데이터 유형을 포함하는 메소드 시그니처 일뿐입니다.

Getter/Setter 메소드 서명은 인터페이스에서도 사용할 수 있습니다. 이들은 유용하며 세터 만 사용하는 경우 개인 캡슐화 된 변수에 대한 읽기 전용 공개 액세스를 생성했습니다.

초록 클래스 대신 인터페이스까지는 코드를 구현하는 방법에 따라 다릅니다. 종종 시간과 인터페이스와 추상 클래스는 상속 및 다형성을 사용하는 다른 결과를 달성하기 위해 함께 사용됩니다 (확장 / 구현).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top