黑马程序员--OC继承
2015-09-05 10:13
253 查看
继承
创建一个新类时,通常需要定义新类以区别于其他类及现有类。使用继承可以定义一个具有父类所有功能的新类,它继承了父类的这些功能。
继承的好处:
1)创建大量的相似类的时候,可以节省工作量。
2)使用框架中的类,或已经写好的类,继承该类,生成一个派生类,比原类更好用。
继承的语法
OC语言是单继承语言。在OC中,基本上所有类的根类都是NSObject类。
重写(继承的另一部分)
子类可以从父类继承方法,但是有时候父类的方法不适合子类,子类就可以写一个自己的同名方法,覆盖掉父类的同名方法,叫做重写。
重写的时候,在子类的.h中不必重新声明,直接在.m中写实现就可以。
子类重写父类的read方法,不需要重新声明。
创建一个新类时,通常需要定义新类以区别于其他类及现有类。使用继承可以定义一个具有父类所有功能的新类,它继承了父类的这些功能。
继承的好处:
1)创建大量的相似类的时候,可以节省工作量。
2)使用框架中的类,或已经写好的类,继承该类,生成一个派生类,比原类更好用。
继承的语法
@interface Person:NSObject //Person里继承了NSObject,获得NSObject类的方法; @end @interface Student :Person //Student类继承Person类 @end
OC语言是单继承语言。在OC中,基本上所有类的根类都是NSObject类。
重写(继承的另一部分)
子类可以从父类继承方法,但是有时候父类的方法不适合子类,子类就可以写一个自己的同名方法,覆盖掉父类的同名方法,叫做重写。
重写的时候,在子类的.h中不必重新声明,直接在.m中写实现就可以。
//父类声明文件 #import <Foundation/Foundation.h> @interface Teacher :NSObject -(void)read; -(void)write; @end
//父类实现文件 #import "Father.h" @implementation Teacher -(void)read{ NSLog(@"Read the question!"); } -(void)write{ NSLog(@"Write the letter"); } @end
//子类声明文件 #import "Teacher.h" @interface Student : Teacher @end
//子类实现文件 #import "Student.h" @implementation Student -(void)read{ NSLog(@"Read the answer"); } @end
子类重写父类的read方法,不需要重新声明。
相关文章推荐
- 黑马程序员----c基础笔记----数组部分
- 【全民讨论】TGT后牧师双子与各职业橙卡[单卡讨论]
- 面试题 7
- PHP 程序员解决问题能力的八个级别
- 轻松搞定面试中的二叉树题目
- JAVA实现链表面试题
- C# 程序员最常犯的 10 个错误
- [.Net码农][hystar整理]Entity Framework 教程
- 腾讯后台开发面试题--整理2
- iOS面试题汇总 - 帮助弄清各种概念
- 十道海量数据处理面试题与十个方法大总结
- 关于PHP程序员解决问题的能力
- 程序员的激情其实是一种痛苦
- 链表面试题Java实现【重要】
- LeetCode趣题
- 动态规划
- 贪心法
- [转载]程序员的激情其实是一种痛苦
- 黑马程序员——45,内部类,多态,异常
- 面试题搜集