首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective C init方法和继承

Objective-C 的 init 方法是一个初始化方法,用于在创建对象时设置对象的初始状态。在 Objective-C 中,每个类都可以有一个或多个 init 方法,以便在创建对象时进行不同的初始化操作。

init 方法的名称是固定的,它是一个特殊的方法,当一个对象被创建时,它会自动调用该方法。在 init 方法中,我们可以设置对象的初始属性值,并执行其他初始化操作。

在 Objective-C 中,继承是通过继承父类的属性和方法来实现的。当一个类继承另一个类时,它可以使用父类的属性和方法,并且可以重写父类的方法。

在 Objective-C 中,继承的实现方式是在子类的类定义中指定父类的名称。例如,如果我们有一个名为 MyBaseClass 的父类,我们可以通过以下方式创建一个名为 MyDerivedClass 的子类:

代码语言:txt
复制
@interface MyDerivedClass : MyBaseClass
// class definition
@end

在子类中,我们可以使用父类的属性和方法,并且可以重写父类的方法。例如,如果父类 MyBaseClass 有一个名为 myMethod 的方法,我们可以在子类中重写该方法:

代码语言:txt
复制
@implementation MyDerivedClass

- (void)myMethod {
    // implementation of myMethod in MyDerivedClass
}

@end

在 Objective-C 中,继承可以是多层次的,即一个类可以继承另一个类,而该类又可以继承另一个类,以此类推。

总之,init 方法是 Objective-C 中用于初始化对象的方法,而继承是 Objective-C 中实现代码重用和多态的一种方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Objective-C中的继承多态

OC中和Java类似,不支持多重继承,但OOP语言C++就支持多继承,为什么OC不支持多继承稍后将会提到。    说到继承呢,想到了一本书上是引用《大话西游》里的一句话来描述继承的。...在Objective-C中super是指向直接父类的指针,而self是指向本身的指针,self就相当于java中的this指针。...在Objectiv-C中几乎所有的类都是继承自NSObject类,NSObject类中存在大量功能强大的方法。下面对NSObject类中的各种方法进行试验介绍:         1....= str1"); }     ​    ​Objective-C中的继承         继承是is-a的关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物的子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 ​Objective-C中的多态     ​    ​多态简单的说就是对于不同对象响应同一个方法时做出的不同反应

1.2K80

objective-C 的OOP(上)--类定义、继承方法调用

上一篇展示了如何用传统的“面向过程编程方法”,实现画“矩形”、“圆”、“椭圆”,这一篇看下如何改用OOP的方法来实现: 因为要用到“颜色”以及“矩形区域”二个枚举,先把他们抽出来单独放在CommDef.h...ShapeColor; //定义“几何形状矩形区域”结构 typedef struct { int x,y,width,height; } ShapeRect; 然后再定义基类Shape,注意:在obj-C中...All rights reserved. // #import "Shape.h" //注:因为Circle类不需要扩展其它方法,所以这里也只要一个空壳 @interface Circle : Shape...@",bounds.x,bounds.y,bounds.width,bounds.height,[super getColorName:fillColor]); } @end 注:上面展示了在obj-C中如何调用父类的方法...rect2]; [shape[2] setFillColor:kBlueColor]; [shape[2] draw]; return 0; } 注:上面的代码中有一个id的变量,在obj-C

1.2K80

Objective-C方法进行注释的方法

名字看着挺绕的哈,其实就是对某个自己创建的方法进行注释,类似编写java代码时的注释javadoc一样,可以自动形成规范性的方法说明。...我们对方法进行注释时,最需要说明的就是方法的作用、方法的参数以及方法返回的结果,所以这里也只说这三个标签,其实很简单,如下所示: /** * @brief 通过两个参数请求一个结果....,紧挨着方法名在其上方输入上述的注释。...现在我们调用方法,然后在调用的地方对着方法名,按住option键,也就是alt键,再点击方法名,就会弹出方法的说明,这时就可以看到我们注释的效果了: 这样是不是很清晰明了。...虽然在声明方法时会做很多额外的工作,但是当代码量大了以后,这样做的效果就出来了,免得总是忘记各个方法是做什么的,参数又是什么,毕竟不能总是依靠起名嘛。

43520

MessageMock : 优雅的模拟 Objective-C 方法

拿到切面过后,就可以拦截到所有的 Objective-C 方法调用,具备了做任何“坏事”的条件。...但值得注意的是,MessageMock 代码必经路径不能包含任何的 Objective-C 方法调用,不然会死循环,所以源码大部分是使用 C++ / Assembly 实现的。...,当这些自定义返回值是 Objective-C 对象时,代码里面直接通过汇编指令操作,编译器不能在合适的地方插入retain,那这些 Objective-C 对象就可能提前释放(比如当前作用域结束)。...当自定义的方法返回值入参是 Objective-C 对象时,这里称之为游离对象便于理解。 游离对象的生命周期 对于游离对象,目前是通过__bridge_retained将目标对象引用计数加一。...考虑到接口实现的简洁,还是希望能做一个真正的泛型接口,最好是能支持编译器的索引,能想到的有两点:C 多参宏。

81020

C# 继承多态

继承 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码节省开发时间。...基类派生类 一个类可以派生自多个类或接口,这意味着它可以从多个基类或接口继承数据函数。...C# 中创建派生类的语法如下: class { ... } class : { ... } 基类的初始化 派生类继承了基类的成员变量成员方法。...与单一继承相对,单一继承指一个类别只可以继承自一个父类。 C# 不支持多重继承。但是,您可以使用接口来实现多重继承。...在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。 静态多态性 在编译时,函数对象的连接机制被称为早期绑定,也被称为静态绑定。

64610

C++】继承多态

但是有一种方法可以既解决二义性,也解决数据冗余问题,就是虚拟继承。虚拟继承可以解决菱形继承的二义性和数据冗余的问题。 如上面的继承关系,在 B C 继承 A 时使用虚拟继承,即可解决问题。...B C 如何去找到公共的 A 呢?...这就和 B C 中多了两个地址有关系了,这两个地址是什么呢?我们可以取它们的地址到内存窗口去观察一下: 这里是通过了 B C 的两个指针,指向的一张表。...; 如上段代码,A类是抽象类,不能实例化出对象,B类C继承了A类,并完成重写 func 函数,所以B类C类可以实例化对象;下面我们简单使用一下: (2)接口继承实现继承 普通函数的继承是一种实现继承...例如我们有以下三个类,A,B,C,其中 C 继承 A B,属于多继承,A B 中都有虚函数,C 中也对 A 、B 中的虚函数进行重写,C 中再增加自己的虚函数;如下三个类: class A

13610

objective-C中的扩展方法与partial class

PrintToConsole(); } } 在objective-C中,也有类似的处理办法: StringUtils.h 定义部分 #import <Foundation/Foundation.h...; [str PrintToConSole]; [pool drain]; return 0; } 不过有一点要特别注意:c#中如果开发人员增加的扩展方法跟.net框架自带的现有方法重名...但在obj-C中,这种情况下开发人员新增加的重名方法会覆盖系统原有的方法,而且没有任何提示!一个好的习惯是为所有扩展方法(包括类名),都加一个特殊的前缀或后缀,以避免重名。...表面上看,partial class与扩展方法是风马牛不相及的二个概念,但是在obj-C中,这二个其实是一回事。...productNo:0001 皆大欢喜,很多语言和技术真是“一门通,处处通”,也许:c#中的"扩展方法"与"部分类"的设计灵感正是来自objective-C

84470

Objective-C中的@property@synthesize用法

@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。...如: 1、在头文件中: C代码   @property int count;   等效于在头文件中声明2个方法C代码   - (int)count;   -(void)setCount:(int...copy: setter方法进行Copy操作,与retain一样 nonatomic: 禁止多线程,变量保护,提高性能 参数类型 参数中比较复杂的是retaincopy,具体分析如下: getter...并且,delegate Outlet 应该用 weak 属性来声明。同时,如上一回介绍的 iOS 5 之前的版本是没有 __weak 关键字的,所以 weak 属性是不能使用的。...声明的分类 在 Objective-C官方文档 中的Property一章里有对类Property详细说明。

1.5K110

Objective-C精选字符串处理方法

无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析操作我们可以用正则表达式来达到我们的目的。...简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解每个方法如何使用,以下做了一个简单的总结,便于以后使用。...1.字符串的创建         字符串的创建有多种方法,下面的例子中给了常用的几种字符串创建方法(还有好多) 1 2 3 4 5 6 //字符串创建工厂     NSString *str1 = [NSString...hello"];     NSString *str3 = [NSString stringWithCString:"aaa" encoding:NSUTF8StringEncoding]; //普通方法...str length];         3.字符串的比较 == 比较字符串的指针   isEqualToString 比较字符串的内容返回值是BOOL类型         以下来利用字符串的浅拷贝深拷贝来测试上面的两个方法

81150

property、魔法方法继承

__ 形式的属性方法。...这些属性方法用来表示特定的意义功能。...__init__ 、__new__ 方法 __init__方法用来对类中成员进行初始化,创建对象时自动调用 __new__方法是在创建对象时向内存中申请空间的方法,在init 方法执行之前自动调用执行...,使用下标进行操作 使用 len函数时,会调用 __len__ 这个方法 __str__方法是 python 提供的一种让用户自定义对象显示形式的接口 多重继承继承 ---- 继承概念 在 Python...钻石继承 一个类同时继承了两个或两个以上的类,继承的类又同时继承了另外一个类,这种关系称为钻石继承,也称菱形继承 钻石继承要避免根类的多次初始化问题 Super mro 通过 使用 super 函数可以调用父类的初始化方法

53230
领券