`
isiqi
  • 浏览: 16053636 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

objective-c继承

 
阅读更多
继承
编写面向对象的程序的时候,类和对象之间存在一定的关系
处理类和对象之间的关系的时候,尤其需要注意OOP的两个方面:
一个就是继承,创建一个新类的时候,通常需要定义新类以区别于
其他类和现有类,使用继承可以定义一个具有父类所有功能的新类。
现在有两个类:
圆:
@interface Circle:NSObject
{
ShapeColor fillColor;
ShapeRect Bounds;
}
-(void) setFillColor:(ShapeColor) fillColor;
-(void) setBounds:(ShapeRect) bounds;
-(void) draw;
@end
矩形:
@interface Rectangle:NSObject
{
ShapeColor fillColor;
ShapeRect Bounds;
}
-(void) setFillColor:(ShapeColor) fillColor;
-(void) setBounds:(ShapeRect) bounds;
-(void) draw;
@end
这两个接口非常相似(相当的相似啊),除了类名不一样,其他的都一样
其中
setFillColor和 setBounds这两个方法也一样
我们可以创建一个全新的类
叫做 shape
@interface shape:NSObject
{
ShapeColor fillColor;
ShapeRect bounds;
}
-(void) setFillColor:(ShapeColor) fillColor;
-(void) setBounds:(ShapeRect) bounds;
-(void) draw
@end //shape
然后我们的Circle和Rectangle就可以继承shape这个类了
@interface Circle:shape
@end //Circle
@interface RectAngle:shape

@end //shape

接着上面的继承:有一些语言有多继承性(比如C++),就是一个类可以从

两个或者多个类中继承而来。Objective-C不支持多继承。

回顾上一次的shape类 我们定义它为Circle Rectangle类的父类

@interface shape:NSObject
{
ShapeColor fillColor;
ShapeRect bounds;
}
-(void) setFillColor:(ShapeColor) fillColor;
-(void) setBounds:(ShapeRect) bounds;
-(void) draw;
@end //shape
下面来看这个类的实现:
貌似前面说过实现的时候不带前面的短线???
@implementation shape
-(void) setFillColor:(ShapeColor) c
{
fillColor = c;
}//setFillColor
-(void) setBounds:(ShapeRect) b
{
bounds = b;
}
-(void) draw
{
}//draw
@end //shape
虽然draw的方法没有实现任何功能,但是我们仍然需要定义它,以便

shape的所有子类都能够实现各自不同的方法。

@interface Circle:shape
@end //Circle
@implementation Circle
-(void) draw
{
NSLog(@"drawing a circle at(%d %d %d %d) in %@",bounds.x,
bounds.y,bounds.width,bounds.height,colorName(fillColor));
}
@end //Circle
子类重写(override)了父类的draw方法
分享到:
评论

相关推荐

    Objective-C程序设计

    前6章讲述objective-c语言,包括数据类型、运算符、表达式、条件语句、循环语句、类、协议、继承、类别、编译预处理等内容。第7章到第10章讲述objective-c的基础框架,以及文件操作、内存管理、数据保存等内容。第11...

    Objective-C简单继承代码

    一个Objective-C简单继承代码,“学生”类,“老师”类继承“人”类

    Objective-C基础教程 中文 PDF 清晰版 [31M]

    本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...

    Objective-C基础教程+随书源代码

     本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...

    Objective-C基础教程(第2版).pdf

    本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...

    《Objective-C2.0程序设计(原书第2版)》_中文完整版

    全书共分为四大部分:第一部分全面讲解了Objective-C语言的基础知识,包括类、对象、方法、数据类型、表达式、程序结构、继承、多态、动态类型和动态绑定、函数、数组、结构和指针等;第二部分详细阐述了Foundation...

    Objective-C 2.0程序设计

    书共分为四大部分:第一部分全面讲解了Objective-C语言的基础知识,包括类、对象、方法、数据 类型、表达式、程序结构、继承、多态、动态类型和动态绑定、函数、数组、结构和指针等;第二 部分详细阐述了Foundation...

    《Objective-C 2.0程序设计(原书第2版)》[PDF]

    全书共分为四大部分:第一部分全面讲解了objective-c语言的基础知识,包括类、对象、方法、数据类型、表达式、程序结构、继承、多态、动态类型和动态绑定、函数、数组、结构和指针等;第二部分详细阐述了foundation...

    Objective-C基础教程

    《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等...

    Objective-C基础教程随书源码

    《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等...

    Objective-C课大三作业.rar

    内容概要:这份作业包含了多个Objective-C案例,涵盖了成员变量的引用、set与get方法、继承、多态、self关键字、点语法、init方法重写、自定义构造方法、description方法、野指针错误、autorelease和自动释放池、...

    Objective-C基础教程清晰版pdf和随书源码.zip

    清晰的Objective-C基础教程和随书源码,本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象...

    [Objective-c程序设计].杨正洪等.扫描版

    《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...

    Programming in Objective-C, 4th Edition

    全书共分为四大部分:第一部分全面讲解了Objective-C语言的基础知识,包括类、对象、方法、数据类型、表达式、程序结构、继承、多态、动态类型和动态绑定、函数、数组、结构和指针等;第二部分详细阐述了Foundation...

    Objective-C基础教程源码

    《Objective-C基础教程(第2版)》结合理论知识与示例程序,全面而系统地介绍了Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性、Cocoa工具包的功能及框架,以及继承、复合、源文件组织等众多重要的...

    objective-c基础教程第2版.pdf

    最新版的objective-c基础教程,包括Objective-C在C的基础上引入的特性、Cocoa工具包的功能及框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。适合各类开发人员阅读。

    Objective-C基础教程,中文彩色版本.

    本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...

    Objective-C基础教程(第2版)

    无论你是初次接触Objective-C和Cocoa,还是已有丰富的C语言、C++或者Java编程经验,本书都能让你轻松过渡并熟练掌握Objective-C! 本书三位作者是顶级苹果专家,书中以苹果最新的Xcode 4.x工具为基础,详细讲述了...

    Objective-C的语法与Cocoa框架

    3. Objective-C中的布尔类型 4. Objective-C中的null 5. 与C混合编写 6. 对象的初始化 7. Objective-C的description方法 8. Objective-C的异常处理 9. id类型 10. 类的继承 11. 动态判定与选择器 12. 类别Category ...

Global site tag (gtag.js) - Google Analytics