• objective-C 多态


      

    在面向对象语言中,接口的多种不同的实现方式即为多态。
    多态对于不同对象响应同一个方法时做出不同反应
    多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态
    在使用多态时,会进行动态检测,以调用真是的对象方法
     
    //
    //  main.m
    //  mobile
    
    #import <Foundation/Foundation.h>
    #import "Communication.h"
    #import "Electrograph.h"
    #import "Telephone.h"
    #import "Student.h"
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            Peerson *p=[[Student alloc]init];
          Communication *cuo=[[Electrograph alloc]init];
            [p sayhi:cuo];
            cuo=[[Communication alloc]init];
            [p sayhi:cuo];
            cuo=[[Telephone alloc]init];
            [p sayhi:cuo];
        }
        return 0;
    }
    //
    //  Peerson.h
    //  mobile
    #import <Foundation/Foundation.h>
    #import "Communication.h"
    @interface Peerson : NSObject
    -(void)sayhi:(Communication *)say;
    @end
    //
    //  Peerson.m
    //  mobile
    
    #import "Peerson.h"
    
    @implementation Peerson
    -(void)sayhi:(Communication *)say{
        [say call];
    }
    @end
    //
    //  Student.h
    //  mobile
    #import "Peerson.h"
    
    @interface Student : Peerson
    
    @end
    
    //
    //  Student.h
    //  mobile
    
    
    #import "Peerson.h"
    
    @interface Student : Peerson
    
    @end
    //
    //  Communication.h
    //  mobile
    
    #import <Foundation/Foundation.h>
    
    @interface Communication : NSObject
    -(void)call;
    @end
    
    //
    //  Communication.m
    //  mobile
    
    #import "Communication.h"
    
    @implementation Communication
    -(void)call{
        NSLog(@"我正在打电话呢");
    }
    @end
    //
    //  Electrograph.h
    //  mobile
    
    #import "Communication.h"
    
    @interface Electrograph : Communication
    
    @end
    
    //
    //  Electrograph.m
    //  mobile
    #import "Electrograph.h"
    
    @implementation Electrograph
    -(void)call{
        NSLog(@"我正在和就家人打电话");
    }
    @end
    //
    //  Telephone.h
    //  mobile
    #import "Communication.h"
    
    @interface Telephone : Communication
    
    @end
    
    //
    //  Telephone.m
    //  mobile
    
    #import "Telephone.h"
    
    @implementation Telephone
    -(void)call{
        NSLog(@"我的手机能上网");
    }
    @end
  • 相关阅读:
    Android安全研究经验谈
    论文相关笔记5
    论文相关笔记4
    论文相关笔记3
    论文相关笔记2
    论文相关笔记1
    朝鲜RedStar_OS_3.0安装图解
    Careerup上的简历模板
    冒泡、二分排序
    火狐插件
  • 原文地址:https://www.cnblogs.com/wyhwyh2114/p/4945996.html
Copyright © 2020-2023  润新知