이것은 아마도 전에 물어볼 것이지만 무엇을 검색해야할지 모르겠습니다. 이제 내 계층 구조입니다 : NSObject> FirstSubclass> SecondSubclass. 하지만 특정 조건이 충족 될 때 FirstSubclass에서 몇 가지 세부 사항을 변경해야하는 앱의 새 기능을 구현할 것입니다. 그래서 FirstSubclass의 동작을 덮어 쓰려면 FirstSubclass와 SecondSubclass 사이에 서브 클래스가 필요합니다. SecondSubclass 자체에서 일을 덮어 쓸 필요는 없지만 모든 다른 SecondSubclass 하위 클래스에는 super
이 필요합니다. "then then statements"을 사용하여 FirstSubclass의 모든 것을 바꿀 수는 있지만 처음에는 다른 옵션이 없는지 확실하게 알고 싶었습니다. 이를 위해 "프로토콜"이 필요합니까? SecondSubclass : FirstSubclasslass <WeirdThingIDontKnow>
처럼?서브 클래 싱에 관한 질문
1
A
답변
0
ducktyping이 필요합니다. 목표 C에서는 respondsToSelector
, performSelector
또는 NSInvocation
을 사용하여 수행 할 수 있습니다. 이렇게하면 클래스 계층을 훨씬 단순하게 만들 수 있습니다.
0
FirstSubclass에서 파생 된 (예 : InBetweenSubClass) 새 개체를 만들고 FirstSubclass의 필요한 메서드를 재정의합니다. 그런 다음 FirstSubclass 대신 InBetweenSubClass에서 파생되도록 SecondSubclass를 변경하십시오.
Objective-C에 해당하는 "대체"가 없으며 동일한 서명으로 메소드를 구현하기 만하면 기본 클래스의 메소드가 대체됩니다. 특별한 조건이 충족되면 새로운 방법을 사용하고 그렇지 않으면 기본 (수퍼) 클래스의 방법을 사용하십시오.
-(void) test
{
if (self.specialcondition)
{
[self newTest];
}
else
{
[super test];
}
}
Weell ... 그리고 질문은 무엇입니까? – Gobra
내가 필요한 "종류"가 무엇인지 묻기 위해 편집했습니다. – Michael