iOS基础(oc)-继承
来源:互联网 发布:中国数据挖掘会议 编辑:程序博客网 时间:2024/05/18 07:22
----- 知之博客 期待与您交流! -------
一 成员访问类型
private:私有成员,不能被外部函数访问(使用),也不能被子类继承;
protected:保护成员,不能被外部函数访问,可以被子类继承;
public:公有成员,可以被外部函数访问,也可以被子类继承。
OC中,所有的方法(消息),都是公有的。
二 重写(继承的另一部分)
重写:子类可以从父类继承方法,但是有时候父类的方法不适合子类,子类就可以写一个自己的同名方法,覆盖掉父类的同名方法。重写的时候,在子类的.h中不必重新声明,直接在.m中写实现就可以。
//父类声明文件#import <Foundation/Foundation.h>@interface Father : NSObject-(void)run;-(void)jump;@end//父类实现文件#import "Father.h"@implementation Father-(void)run{ NSLog(@"he is running!"); return;}-(void)jump{ NSLog(@"father can jump 1.2m");}@end//子类声明文件#import "Father.h"@interface Son : Father@end//子类实现文件#import "Son.h"@implementation Son-(void)jump{ NSLog(@"he can jump 0.6m");}@end
子类重写父类的jump方法,不需要重新声明。
同一个方法,不同的实现,称为多态。重写是多态的一种。
继承的好处:
1)创建大量的相似类的时候,可以节省工作量。
2)使用框架中的类,或已经写好的类,继承该类,生成一个派生类,比原类更好用。
注意:NSString、NSArray、NSDictionary都是不能够继承的。
3、虚方法
OC的方法都是虚方法
1)父类的指针可以指向子类的对象
Son * son = [[Son alloc] init]; Father * p = son;
上面p和son都指向子类的对象;调用方法时,不看指针,看对象,对象的地址指向什么对象,就调用什么方法,称为虚方法。
2)调用方法时,不看指针看对象,这样的方法叫做虚方法。虚方法的好处:可以描述不同事物被相同事件触发,产生不同的响应(结果)。体会下面的例子
动物的父类声明与实现
//动物类声明 #import <Foundation/Foundation.h> @interface Animal : NSObject -(void)beBeaten; @end
//动物类实现 #import "Animal.h" @implementation Animal -(void)beBeaten{ return; //该方法需要子类实现,所以父类不需要写任何实现代码 } @end
子类(狗)的声明与实现
#import "Animal.h" @interface Dog : Animal @end
子类(猫)的声明与实现
#import "Animal.h" @interface Cat : Animal @end
#import "Cat.h" @implementation Cat //该方法在父类已经声明,所以子类不需要重复声明 -(void)beBeaten{ NSLog(@"miao,miao..."); } @end人类的声明与实现
1 0
- iOS基础(oc)-继承
- iOS基础(oc)-封装
- iOS基础(oc)-多态
- oc基础第四天-继承
- OC基础回顾(三)继承
- iOS开发之OC语法基础(二)--继承和实例化
- OC基础5:继承
- OC基础-继承
- 自学iOS开发系列----OC(继承)
- ios学习笔记--(oc基础1)
- ios学习笔记--(oc基础3)
- ios学习笔记--(oc基础4)
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法1
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法3
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法4
- OC基础-继承总结11
- iOS OC语言(三) 继承
- Android开发之logcat描述
- Mac下Android studio 之NDK配置教程(二)
- Swift和OC混合编程
- scikit-learn:0.1. 数据集格式和预测器
- Docker初次使用记录
- iOS基础(oc)-继承
- Java反射的基础——Class类
- Learing Python 装饰器 Decorator
- Java 反射常用方法示例
- c中宏定义
- Mac mini紧急修复白屏
- 移动开发、C/C++、算法、程序员人生
- android 程序中禁止屏幕旋转和重启Activity
- 使用Git、Git GUI和TortoiseGit