OC中多态

本文介绍了Objective-C中的多态概念,包括其作为面向对象特性之一的表现形式,如不同对象调用相同方法产生不同结果。同时,讨论了id类型在多态中的角色,通过方法选择器来判断和调用方法。还提到了多态的非主流表现,即不同参数的方法。最后,简要提及了在使用多态过程中可能遇到的问题,以及Class和选择器的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,多态:

                面向对象语言三大特点:封装,继承,多态。(顺序,选择,循环是面向过程)

                //1,在oc中调用相同名称的方法,执行结果不同,这种表现形式我们叫做多态

                其实就是:(相同名称方法的多种表现形态)

               //2,(非主流的表现形式)zaiOc中,调用同一个名称但是参数不同的方法也可以叫做多态;

2,静态类型和id类型

                 //id 泛类型,指代[某个类的对象]的类型


/由于id是泛型,所以id中并不存在任何一斤可以调用的方法。那么我们使用的时候就不能让id类型的对象调用任何方法

        //而是职能通过[方法选择器]去判断id类型的对象是否执行某个方法。


 if (who) {//判断是否传入了值   id类型做参数的方法

        [who performSelector:@selector(sellmeng) withObject:nil];//去选择执行某个方法,运行时检测对象中是否有(sellmeng

    }



3,多态的表现形式

//当定义同样的方法但是所带的参数个数或者类型不一样时,我们也可以叫他多态(非主流多态)

简单来说多态就是同一个类或者不同的类的方法名字恰好重复了而已。



4,使用多态的常见问题(选讲)


5,什么是Class

             @class相当于高速编译器写在@class之后的这个字串当作一个类处理(与import区别是@class不导入任何东西)


6,什么是选择器


-(void)run:(id)runner{

    if (runner) {

        //select()方法是前面调用这个方法选择器的对象中的方法(不准)

//        通过调用方法选择器方法,在这个方法中将方法选择器指向runnerrun方法;

        [runner performSelector:@selector(run) withObject:nil];

        /*

         1SEL  选择器类型(方法选择器类型)

         SEL method=@selector(run);

         表示,定义了一个方法选择器,这个方法选择器指向run方法

         */

        

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值