Objective C2.0学习(九 重载方法)
来源:互联网 发布:知乎 电脑耳机 编辑:程序博客网 时间:2024/06/03 05:43
方法的重载:
不能通过继承删除或者减少方法,只有利用重载来更改继承方法的定义。
两个类:ClassA与ClassB。将定要为ClassB编写自己的initVar方法。ClassA类里已经定义了initVar,ClassA继承了该方法,此处新建一个同名的方法来替代继承的方法,新方法必需具有相同的返回类型,想通的参数以及数目。
ClassA.h
Overriding Methods
#import <Foundation/Foundation.h>
@interface ClassA: NSObject
{
int x;
}
-(void) initVar;
@end
ClassA.m
@implementation ClassA
-(void) initVar
{
x = 100;
}
@end
@interface ClassB: ClassA
-(void) initVar;
-(void) printVar;
@end
@implementation ClassB
-(void) initVar
{
x = 200;
}
ClassB *b = [[ClassB alloc] init];
[b initVar]; 导致使用定义在ClassB中的initVar方法,而不是使用ClassA中所定义的方法
ClassA *a = [[ClassA alloc] init];
ClassB *b = [[ClassB alloc] init];
[a initVar];
[a printVar]; 错误 ClassA里面没有printVar方法(ClassA declaration and definition)
[b initVar];
[b printVar];
[a release];
[b release];
(有些不是很明白,需要以后更多注意)
重载dealloc方法和关键字super
[[myRect origin] release]所以不必担心释放所遇单独的类成员,此处只释放myRect的origin
当然,也可以利用关键字super,他引用了消息接收者的父类。可以向super传递消息来执行重载方法。
[super release];释放父类
总体来说,该章节的类,应该被叫做抽象类,子类重写父类的方法
- Objective C2.0学习(九 重载方法)
- Objective C2.0学习(九 重载方法)
- Objective C2.0学习(二 类,对象和方法)
- Objective C2.0学习(三 类,对象和方法)
- Objective C2.0学习(二 类,对象和方法)
- Objective C2.0学习(三 类,对象和方法)
- Objective C2.0学习(一)
- Objective C2.0学习(七 类)
- Objective C2.0学习(八 继承)
- Objective C2.0学习(十 多态)
- Objective C2.0学习(一)
- Objective C2.0学习(七 类)
- Objective C2.0学习(八 继承)
- Objective C2.0学习(十 多态)
- Objective C2.0学习(四 数据类型和表达式)
- Objective C2.0学习(五 循环结构)
- Objective C2.0学习(六 选择结构)
- Objective C2.0学习(十三 有关类的问题)
- Objective C2.0学习(七 类)
- Objective C2.0学习(八 继承)
- IOS 多线程的一些总结
- 重装系统后Android开发环境的配置
- DB2的SQLCODE和SQLState相关解释
- Objective C2.0学习(九 重载方法)
- 【Java Servlet 开发系列之一】在mac系统安装Apache Tomcat的详细步骤
- 【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互
- Objective C2.0学习(十六 存储类说明符)
- Objective C2.0学习(十五 作用域)
- 服务器安装centos 6.2过程
- Objective C2.0学习(十四 变量和数据类型)
- Objective C2.0学习(十三 有关类的问题)
- URL1