`
473687880
  • 浏览: 492979 次
文章分类
社区版块
存档分类
最新评论

object-c之继承

 
阅读更多

跟Java一样,只支持单继承,多继承需要用portocol。

#import <Foundation/Foundation.h> 
@interface MyRectangle: NSObject{ 
    int width; 
    int height; 
} 
-(MyRectangle*) initWithWidth: (int) weight andHeight: (int) height; 
-(void) setWidth: (int) width; 
-(void) setHeight: (int) height; 
-(int) width; 
-(int) height; 
-(void) area;//计算面积
@end 

#import "MyRectangle.h" 
@implementation MyRectangle 
-(MyRectangle*) initWithWidth: (int) w andHeight: (int) h{ 
    self=[super init]; 
    if(self){ 
        [self setWidth: w]; 
        [self setHeight: h]; 
    } 
} 
-(void) setWidth: (int) w{ 
    width=w; 
} 
-(void) setHeight: (int) h{ 
    height=h; 
} 
-(int) width{ 
    return width; 
} 
-(int) height{  
return height; 
} 
-(void) area{ 
    printf("%d\n",width*height); 
} 
@end 

#import "MyRectangle.h"

@interface MySquare:MyRectangle{
int size;
}
-(MySquare*)initWithSize:(int)size;
-(void)setSize:(int)size;
-(int)size;
@end

#import "MySquare.h"

@implementation MySquare
-(MySquare*)initWithSize:(int)s{
self=[super init];
if(self){
[self setWidth:s];
[self setHeight:s];
}
return self;
}

-(void) setSize:(int)s{
size=s;
}

-(int)size{
return size;
}
@end

#import "MySquare.h"

int main(int argc,const char *argv[]){
MyRectangle *rec=[[MySquare alloc]initWithSize:10];
[rec area];
[rec release];
return 0;
}

好了,经常make后无问题。

然后继续测试isMemberOfClass

#import "MySquare.h"

int main(int argc,const char *argv[]){
MyRectangle *rec=[[MySquare alloc]initWithSize:10];

if([rec isMemberOfClass:[MyRectangle class]]){
NSLog(@"rec isMemberofClass of MyRectangle.\n");
}
else{
NSLog(@"rec is not MemberofClass of MyRectangle.\n");
}

if([rec isMemberOfClass:[MySquare class]]){
NSLog(@"rec isMemberofClass of MySquare.\n");
}
else{
NSLog(@"rec is not MemberofClass of MySquare.\n");
}

[rec release];
return 0;
}

从结果看出,编译器不认为

rec
是MyRectangle而是MySquare。

分享到:
评论

相关推荐

    Object-C的语法与Cocoa框架

    阅读本文档,您最好有一定的C语言、JAVA语言的基础。 文档内容: 1. GNUStep的安装 2. 类定义 3. Object-C中的布尔类型 4. Object-C中的null 5. 与C混合编写 6. 对象的初始化 7. Object-C的description方法 ...

    Object-C的教程.txt

    继承与多态:掌握Object-C中的继承和多态机制,了解子类如何继承父类的属性和方法,并实现自己的特定功能。 初始化与析构:学习Object-C中的对象初始化(init方法)和析构(dealloc方法)过程,了解对象的生命周期...

    Object-C语言教程.docx

    Object-C,通常写作ObjC或OC,是扩充C的面向对象编程语言。它的主要特点包括面向对象、动态性、扩展性、自动垃圾回收机制、C语言兼容性以及静态类型检查等。Objective-C主要用于Mac OS X和GNUstep这两个使用OpenStep...

    object-c语言教程及其经典案例.zip

    学习面向对象编程概念:理解类、对象、继承、封装和多态等面向对象编程的基本概念是学习Objective-C的关键。 学习Objective-C语法:熟悉Objective-C的语法结构,如类定义、方法声明和调用、消息传递机制等。 实践...

    Object-C(通常简写为ObjC或OC)是一种扩充C的面向对象编程语言,它在许多方面都有着显著的特点和优势 以下是对Obje

    Object-C是一种强大的编程语言,它结合了C语言的强大功能和面向对象编程的便利性。这种语言最初由Brad Cox在1980年代初发明,后来被广泛应用于Mac OS X、iOS、iPad OS等操作系统以及相应的应用程序开发。Object-C的...

    object-c程序设计第四版

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

    Object-C语言教程&

    Objective-C 入门教程 分类 编程技术 Objective-C 是一种简单的计算机语言,设计为可以支持真正的面向对象编程。 Objective-C 通过提供类定义,方法以及属性的语法,还有其他可以...Objective-Objective-C是C语言的

    object-c入门学习笔记分享-继承.txt

    object-c入门学习笔记分享--继承,初学者可参考

    Object-C语言教程0220.zip00000001

    Objective-C 是一种编程语言,由 Brad Cox 和 Tom Love 在1980年代早期开发,旨在为 Smalltalk 风格的对象导向...Objective-C 继承了 C 的语法和结构,同时加入了对象导向编程的特性,如面向对象、多态、继承和封装。

    Object-C语言教程&案例,要点难点,代码示例,代码解析

    面向对象:理解类(Class)、对象(Object)、实例变量(Instance Variables)、方法(Methods)、继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)等概念。 内存管理:了解ARC(Automatic Reference Counting,...

    Object-C语言教程&案例&相关项目资源.docx

    面向对象:Objective-C 是一种纯粹的面向对象编程语言,支持类、对象、继承、多态等面向对象特性。 动态性:Objective-C 是一种动态语言,支持运行时类型识别和消息传递,可以在运行时动态地修改类和对象的行为。 ...

    精通Object-C:从基础到高级项目实践.docx

    本教程旨在为初学者和中级开发者提供一个全面的Object-C编程学习路径,从基础语法入手,逐步深入到高级编程技巧,并通过实际案例和项目练习,帮助学习者掌握Object-C在iOS和OS X开发中的应用。无论你是想开发iOS应用...

    object c教程 pdf

    通常写作objective-c或者obj-c object-c语言是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言 它主要使用于MAC OS X和GNUstep这两个使用OpenStep标准的系统。 在MAC OSX系统下,运用苹果...

    swift-YHProxyRouter一个用Object-C写的实现多继承而且解耦功能强大的工具

    YHProxyRouter 一个用Object-C 写的实现多继承, 而且解耦功能强大的工具

    学习 Object-C入门教程

    本书简明概要的介绍的object-c的特点。 例子具有代表性。 目录列表如下: 第 1 章,也就是本章 第 2 章,从 Hello,World!开始 第 3 章,类的声明和定义 第 4 章,继承 第 5 章,Class 类型,选择器 Selector 以及...

    Object-C 入门教程-object-c如何学习

    许多传统的面向对象概念,例如封装,继承以及多态,在 Objective-C 中都有所体现。这里有一些重要的不同,但是这些不同在这文章会表现出来,而且如果你需要还有更多详细的信息存在。 如果你从来没有使用任何编程...

    Object-oriented Programming with ANSI-C

    用C描述的面向对象编程 继承, 多态

    object c中关于继承代码示例

    object c中关于继承代码示例,代码

    object-c基础教程

     继承、多型(Inheritance, Polymorphism)以及其他面向对象功能 o id 型别 o 继承(Inheritance) o 动态识别(Dynamic types) o Categories o Posing o Protocols  内存管理 o Retain and Release...

    新手 学Object-C开发 一些简单例子

    理解面向对象 编程:学习Objective-C中的面向对象概念,如继承、封装和多态。 探索Cocoa框架:学习Cocoa框架提供的UI组件、数据管理和网络功能。 实践项目:通过创建小项目来实践所学知识,如简单的iOS或macOS应用。...

Global site tag (gtag.js) - Google Analytics