【object-c 学习笔记】第四章 继承

继承 inheritance
1、概念:

2、声明新类的方法:@interface Circle:NSObjcet
冒号后边的标识符是需要继承的类

3、有关术语
超类(superclass):是继承的类;
父类(parent class):是超类的另一种表达方式 ;
子类(subclass):是执行继承的类 ;
孩子类(child class):子类的另一种表达方式;

4、objcet-c 继承的实例

 1 //程序中定义了两个类,分别是ClassA和ClassB;ClassA的父类是NSObject ClassB继承了ClassA,间接继承了NSObject;
 2 //interface 用来定义;implementation用来实现类的方法
 3 @interface ClassA : NSObject
 4 {
 5     int n;
 6 }
 7 -(int)initVar;
 8 @end
 9
10 @implementation ClassA
11
12 -(void)initVar
13 {
14     n=406;
15 }
16 @end
17
18 @interface classB : ClassA
19 -(void)printVar;
20 @end
21
22 @implementation classB
23
24 -(void)printVar
25 {
26     NSLog(@"n=%i",n);
27 }
28 @end
29
30 int main(int argc, char * argv[]) {
31     @autoreleasepool {
32         classB *clsB = [classB new];
33         [clsB initVar];
34         [clsB printVar];
35     }

运行后的结果:

2015-04-21 22:29:01.619 DoudouInheritanceProject[6027:704463] n=406

下面来解释下这个程序,该程序中定义了两个类ClassA和ClassB,ClassA的父类是NSObject,这是object-c的一个根类,ClassB 继承自ClassA,那么也间接继承了NSObject类;定义了classA的接口时,我们定义的一个变量n,那么子类ClassB才能访问它,classA中定义了方法initVar,而在ClassB中定义了方法printVar。在执行主函数时,首先创建了classB对象,使用initVar来初始化参数,initVar是ClassA中的方法,此时classB类在引用指针来调用就体现了继承的观点,然后再执行printVar方法,打印出结果。

时间: 2024-12-28 08:40:22

【object-c 学习笔记】第四章 继承的相关文章

JavaScript学习笔记(第四章——第六章)

时间戳(2015-06-09 20:58:00) 第四章:变量.作用于和内存问题          typeof:判断元素是什么类型            instanceof:检测引用类型对象是否未指定类型          注:所有引用类型皆为Object的实例          JavaScript没有块级作用域:                    例1: if(true){ var color = “blue”; } alert(color);               // bl

Android学习笔记—第四章 Android开发组件2

第四章 Android开发组件2 列表类组件 (1)ListView组件:以垂直列表的形式列出需要显示的列表项 相关属性: a. android:divider  用于为列表视图设置分隔条,可以用颜色或者图片资源 b. android:dividerHeight  设置分隔条的高度 c. android:entries  通过数组资源为ListView指定列表项 d. android:footerDividersEnabled  设置是否在footerView之前绘制分隔条,默认为true. e

Java学习笔记—第四章

第四章  变量和常量 1. Java的访问控制修饰符 使用访问控制修饰符可以限制数据的访问权限.访问控制修饰符有4个等级:private.protected.    public和默认(不指定修饰符). 类型/权限 private protected public 默认 所属类 可访问 可访问 可访问 可访问 同一个包中的其他类(包括子类) 不可访问 可访问 可访问 可访问 不同包中的子类 不可访问 可访问 可访问 不可访问 不同包中的非子类 不可访问 不可访问 可访问 不可访问 2. 变量:变

【PMP】Head First PMP 学习笔记 第四章

第四章 项目整合管理 项目经理每天的工作 力保项目顺利进行 紧密监督以确保计划进行 计划本身不完善需要予以修正 即使是更大的项目的子项目,也要有收尾的过程 6个整合管理过程 整合管理划分为6个过程,项目经理必须掌握的核心职责. 1.制订项目章程 授权你展开工作的文档,通常由赞助人(为项目提供资金的人)交给你. 2.制订项目管理计划 项目管理计划涵盖了所有知识领域,很大一部分就是告诉你在出现问题时如何处理变更. 3.指导和管理项目执行 确保所有人都在做他们本该做的事,项目创建的产品和项目确实满足干

《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透

继续来学习metasploit...记好笔记是很重要的,下面开始正文: 二.WEB应用渗透技术 1.WEB应用渗透基础知识 先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查询) Sql注入攻击:大致分为 普通注入和盲注 跨站脚本(XSS): 分为存储型XSS,反射性XSS以及DOM型XSS 跨站伪造请求(CSRF):以XSS方式注入一段脚本,受害者点击该脚本时,脚本伪造受害者发出请求. 会话认证管理缺陷:验证身份的功能存在缺陷. 安全误配置:开发和管理人员的失误导致存在漏洞. 不安全密码存

Solr in action学习笔记 第四章 Solr Config

本章关注solrconfig.xmlSolr为web应用,有一个系统变量solr.solr.home指明Solr目录,启动Solr核后,有一个/server下有一个应用目录,该目录下有一个core.properties,一个conf文件夹和一个data文件夹.core.properties用于配置core,所以solr可以用该文件自动发现core,然后Solr用solrconfig初始化core. 4.1 Overview of solrconfig.xml 4.1.1Common XML da

【数据分析 R语言实战】学习笔记 第四章 数据的图形描述

4.1 R绘图概述 以下两个函数,可以分别展示二维,三维图形的示例: >demo(graphics) >demo(persp) R提供了多种绘图相关的命令,可分成三类: 高级绘图命令:在图形设备上产生一个新的图区,它可能包括坐标轴.标签.标题等. 低级绘图命令:在一个己经存在的图形上加上更多的图形元素,如额外的点.线和标签. 交互式图形命令:允许交互式地用鼠标在一个已经存在的图形.上添加图形信息或者提取图形信息. 使用R语言作图,主要按照以下步骤进行: ①取原始数据,准备好绘图需要的变量. ②

小甲鱼零基础汇编语言学习笔记第四章之第一个汇编程序

1.使用工具 代码编写:NotePad++,代码编译器:MASM 2.一个源程序从写出到执行的过程 第一步,使用文本编辑器,用汇编语言编写汇编源程序,这一步产生一个存储源程序的文本文件. 第二步,对源程序进行编译,连接.使用MASM.exe对源程序文件进行编译,产生目标文件,再使用LINK.exe对目标文件进行连接,生成可在操作系统中直接运行的可执行文件.可执行文件包括两个部分,程序(从源程序的汇编指令翻译过来的机器码)和数据(源程序中定义的数据):相关的描述信息 (程序有多大,要占多少内存空间

JavaScript高级程序设计学习笔记第四章--变量、作用域和内存问题

1.变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 2.变量复制 如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上,两个变量可以参与任何操作而不会相互影响. 当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中.不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象.复制操作结束

matlab学习笔记第四章——统计和MATLAB编程介绍

1.柱状图: >> x = [55,63,69,70,75,78,82,84,85,88,90,96,100]; >> y = [1,2,1,6,4,7,2,1,3,2,4,2,1]; >> bar(x,y) 2.我们可以使用barh命令产生水平的柱状图. 3.通过调用mean函数,MATLAB会告诉我们一组数据的均值是多少. 4.