#import @interface Foo : NSObject @end @implementation Foo - (void)bar { NSLog(@"%@", self); } @end @interface Bar : NSObject @end @implementation Bar + (void)load { NSLog(@"%@", self); } @end @implementation Baz : Bar @end int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Hello, World!"); Foo *foo = [[Foo alloc] init]; [foo bar]; } return 0; }