Ale*_*lex 1 oop object objective-c
在编程方面,我是一个完全新手,我将大部分时间都集中在设计,CSS/HTML上,最后决定我应该跨越编程.
我一直在阅读Stephen Kochan的书"Objective C中的编程",我大约有4章,并希望对面向对象编程的概念做一些澄清.或多或少使用游戏开发作为示例的对象,类和方法的概念.
因此,如果我们使用超级马里奥兄弟作为一个例子,无视游戏很可能不是使用Objective C开发的事实.
从我的理解......
因此,如果"食人鱼植物"成为了这一类......那些食人鱼植物和喷火食人鱼植物都会成为该类(食人鱼植物)的对象吗?
然后你会将方法应用于这些对象,如:
Chraning Piranha Plant(物体):从管道叮咬上升/下降
火球食人鱼植物(物体):从管道上升/下降射击火球
...?
我完全误解了这个概念吗?
谢谢您的帮助!
Chomping和Fire-spitting食人鱼植物是基本食人鱼植物的专业化或改良; 他们很可能是子类.子类可以执行超类可以执行的所有操作,但是它有一些特殊的技巧.
由于这两种类型都在管道中上下移动,这将是基础食人鱼植物类的一种方法; 这是所有 pirahna植物共有的行为.一旦弹出它们,它们做的任何奇怪的事情也可能是父类的一个方法,它将被每个子类覆盖,如下所示:
@interface PiranhaPlant : NSObject
// Declare properties, other methods...
- (void) ascendFromPipe: (NSRect)pipeFrame;
- (void) doThingThatIDoOnceFullyExtended;
@end
@implementation
//...
- (void) ascendFromPipe: (NSRect)pipeFrame
{
// ...drawing/animation stuff
[self doThingThatIDoOnceFullyExtended];
[self descendIntoPipe];
}
- (void) doThingThatIDoOnceFullyExtended
{
return;
}
//...
@end
Run Code Online (Sandbox Code Playgroud)
@interface FireSpittingPiranhaPlant : PiranhaPlant
@end
@implementation FireSpittingPiranhaPlant
- (void) doThingThatIDoOnceFullyExtended
{
[self spitFireball];
}
@end
Run Code Online (Sandbox Code Playgroud)
对于其他子类也是如此.
然后,您将实例化任何类别的食人鱼植物,以填充单个管道.他们每个人都会按照他们班级的定义行事 - 一个人选择,一个人吐火,一个人完全从管道中跳出来并追逐马里奥.