2013-02-28 3 views
1

, исходя из фона java, когда вы делаете абстрактные классы, и кто-то использует их и перемещает их со своими значениями: в объективе c ... как вы делаете абстрактный класс в статической библиотеке для кого-то, чтобы открыть и переопределить? спасибоКак я могу назвать абстрактный метод из объектной библиотеки c

Редактировать: точнее, как они могут реализовать метод в своем методе и превысить значения, используемые для себя (ов)? Опять же жаль, если это легко, им от Явы backgrund

+0

Возможный дубликат [Создание абстрактного класса в Objective C] (http://stackoverflow.com/questions/1034373/creating-an-abstract-class-in-objective-c) – dasblinkenlight

+0

Objective-C является гораздо более динамичным чем Java, и формальный абстрактный класс не имеет большого смысла, учитывая, что теоретические методы могут быть добавлены в класс во время выполнения. Какао и Java не очень хорошо сочетаются, ведь Apple отбросила оригинальную реализацию Cocoa-Java из-за слишком большого различия в философии между двумя языками и фреймворками. – Monolo

ответ

1

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

Просто сообщите в документах, что он предназначен для подкласса и не используется как таковой.

1

Какао не предоставляет ничего, что называется абстрактным. Мы можем создать реферат класса, который получает проверку только во время выполнения, время компиляции не проверяется.

Вот только попробовать:

@interface AbstractClass : NSObject 
@end 

@implementation AbstractClass 
+ (id)alloc{ 
    if (self == [AbstractClass class]) { 
     NSLog(@"Abstract Class cant be used"); 
    } 
    return [super alloc]; 
@end 

ПРИМЕЧАНИЕ: Это не компилятор проверил.

+0

Я вижу, но как бы кто-то из библиотеки реализует это –

+0

Прежде всего, это помогает дать абстрактный класс только во время выполнения, а не во время компиляции, даже если вы идете сделать объект, он будет создан. Так в чем польза от этого ??? ** Лучше изменить свой дизайн, если вы действительно хотите абстрактный класс. ** –

1

Исходя из фона Java, я искал то же самое, когда я впервые начал с Objective-C. Я нашел ответ на мой вопрос:

Creating an abstract class in Objective-C

Короткий ответ, нет абстрактного класса (по крайней мере, в контексте Java) в Objective-C.

Смежные вопросы