object-c中的继承
在面向对象的语言中都会由继承这种语法,而继承我们通常使用is a 来确定继承的关系,在objcet-c中继承是使用冒号来确定继承的,从下面的例子来了解继承:
1.创建一个studet的对象
------声明
#import <Foundation/Foundation.h>
//我们创建的类必须继承了NSobject对象
@interface student : NSObject{
int _age;
}
-(void)setAge:(int) newAge;
-(int) age;
@end
#import "student.h"
-----实现方法
@implementation student
-(void)setAge:(int)newAge{
_age =newAge;
}
-(int)age{
return_age;
}
@end
2.创建一个叫小明的学生继承了student
---声明
#import <Foundation/Foundation.h>
#import "student.h"
//@class student --------------------这里不能使用@class关键字来引用
@interface liming : student
{
NSString *name;
}
//子类特有的方法
-(void)speak;
-(void) setName:(NSString *)newName;
-(NSString *) name;
@end
------实现
#import "liming.h"
@implementation liming
-(void)setName:(NSString *)newName{
name = newName;
}
-(NSString *)name{
returnname;
}
- (NSString *)description
{
return [NSStringstringWithFormat:@"my name is %@", name];
}
-(void)speak{
NSLog(@"hello my age is %i",self.age);
}
@end
-----mian方法
#import <Foundation/Foundation.h>
#import "student.h"
#import "liming.h"
int main(int argc, constchar * argv[])
{
@autoreleasepool {
liming *lim = [[limingalloc]init];
lim.age = 23;
lim.name =@"小明";
//%@是调用OC中的descrition方法,我们在liming类中重写了description方法
NSLog(@"%@",lim);
}
//创建子类使用父类进行接受
student *ss = [[limingalloc]init];
ss.age=22;
// //使用父类进行接收对象依然是可以进行调用子类中的方法,但是Xcode会报警告,Student中没有这个方法。
[ss speak];
return0;
}
OC中继承:
4.在继承的机制中,对于方法的调用是从子类开始找方法,如果找到方法就会执行子类中的方法,如果没有找到就会到父类中进行查找。再调用父类中的方法。在继承的关系中变量的使用,是从父类开始找。
@class关键会在另外个博文说明。
转载于:https://blog.51cto.com/8551527/1395036
object-c中的继承相关推荐
- Python中的继承和多态
本文以生活中的基础现象为切入点,主要介绍了Python基础中继承和多态,包括单继承.多继承的语法.多态常见的 "鸭子类型". 以及如何重写父类的方法都做了详细的讲解. 一.继承的介 ...
- python中的object是什么意思_Python object类中的特殊方法代码讲解
python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...
- php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念
js里常用的如下 - phpStudy...
JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...
- Thread和Object类中关于线程的相关方法
Thread和Object类中线程的7个重要方法概览 类 方法名称 简介 Thread sleep相关 相关表示sleep所有的重载方法,参数不同,实际作用大同小异 Thread join() 等待其 ...
- 重写Java Object类中的equals()方法
Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...
- JavaScript学习13 JavaScript中的继承
JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript">//继承第一种方式: ...
- Object Pascal 中类型
Object Pascal 中类型的一些注意 2010-04-16 14:15 --------------------------------------------------------- 原创 ...
- 详细分析如何在java代码中使用继承和组合
文章目录 继承与组合 何时在Java中使用继承 何时在Java中使用组合 继承与组成:两个例子 用Java继承重写方法 Java不具有多重继承 使用super访问父类方法 构造函数与继承一起使用 类型 ...
- java的继承_java中的继承(一)
在java中,所有的类都有一个默认的父类Object,即使我们没有显式的去继承这个类.在Object类中定义了一些方法,其中有几个方法是我们必须掌握的,比如equals方法,hashCode方法,wa ...
- Python中菱形继承的MRO顺序及property属性
Python中菱形继承的MRO顺序及property属性 文章目录 Python中菱形继承的MRO顺序及property属性 一.Python中菱形继承的MRO顺序 1. 单独调用父类的方法 2. 多 ...
最新文章
- java 输出全年日期_Java 输出某一年所有的日期
- VMware文件共享
- 输入学生成绩,并按升序排列 Ascending.java
- Unable to open /dev/sda的原因之一
- c语言脸型图案,[转载]各种脸型的分析及修饰
- python cnn程序_python cnn训练(针对Fashion MNIST数据集)
- P3211 [HNOI2011]XOR和路径
- 关于dsoframer VC++下的使用
- Android车载应用开发与分析(11)- 车载Android应用开发入门指南
- 如何快速的入门单片机?单片机自学教程有哪些?
- eMule电驴使用从入门到精通
- mysql引用表无效列_Mysql使用索引可能失效的场景
- 秀米怎么添加附件链接
- 刚刚!中国最有前途的30座城市排名公布
- 图文讲解安装Adobe Photoshop 2021 for Mac(附下载dmg安装包)
- 罗克韦尔自动化启用位于硅谷的新建电动汽车创新中心
- 深入 javascript 之 call函数 用法
- 数据预处理与特征工程—12.常见的数据预处理与特征工程手段总结
- 基于空间平滑MUSIC算法的相干信号DOA估计(2)
- 模块电路选型(5)----电机驱动模块
热门文章
- pycharm中R工具包的安装
- css3树形图,CSS3 树形堆栈
- eplices如何导入外部代码_java环境配置的理解
- Spring Context 你真的懂了吗?
- java实现登录注册案例_Java基于IO版实现用户登录注册的案例
- php源代码序列号,php如何生成不重复的序列号
- java内存规范_Java内存模型-jsr133规范介绍
- 字节增强java_java字节增加 - longjunping的个人空间 - OSCHINA - 中文开源技术交流社区...
- gitlab使用_如何在正确使用 Docker 搭建 GitLab
- 已调信号波形是怎样的_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器...