Generic

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//C++
@protocol Barking <NSObject>
- (void)bark;
@end
//template
@interface Animal<AnyObject, AnyObject2>:NSObject
@end
@class Dog;
//instance
@interface Dog : Animal<Dog *, NSString *> <Barking>//protocol
@end