Является ли NSObject абстрактным классом в Objective-C? Но мы можем создать экземпляр NSObject, тогда как он следует правилу класса Abstract? - PullRequest
1 голос
/ 21 декабря 2011

Какой класс является абстрактным классом в Objective-C, я прочитал некоторый документ, где NSObject является абстрактным классом, но мы можем создать экземпляр NSObject, а затем узнать, как он следует правилу абстрактного класса.

NSObject *obj = [[NSObject alloc] init];    
NSLog(@"description = %@",[obj description]);    
NSLog(@"class name = %@",[obj class]); 

Пожалуйста, совет.

А также я слышал еще один абстрактный класс в Objective-C, как называется класс?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Objective-C не имеет ограничений по времени компиляции против создания абстрактных классов.См. Создание абстрактного класса в Objective-C

0 голосов
/ 21 декабря 2011

В Objective-C не существует понятия абстрактного класса на уровне языка.Вы должны прочитать документацию для класса, чтобы выяснить, следует ли его рассматривать как абстрактный класс.В Какао есть несколько таких классов, например, NSObject, NSProxy и NSOperation.Чаще всего поведение определяется в протоколах, а не в абстрактных классах.

Платформа Cocoa содержит корневые классы (то есть класс, который не имеет суперклассов).NSObject - это один корневой класс, а NSProxy - другой.NSProxy не реализует метод init, который означает, что исключение возникает при попытке создать экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...