zoukankan      html  css  js  c++  java
  • 协议实现objective C 协议的实现

    文章结束给大家来个程序员笑话:[M]

        协议(protocal)与Java的interface(接口)和C++的纯虚类同相,协议只担任方法的列表,不担任方法的实现,的目是让别的类来实现,协议只有接口部份,没有m文件,关键字是protocol,协议可以承继别的协议,协议中不能义定别的成员变量。

        Graphics.h file

        #import <Foundation/Foundation.h>

    @protocol Graphics

    -(void) onDraw;
    @end

        Ellipse 类的实现

        #import <Foundation/Foundation.h>
    #import "Graphics.h"

    @interface Ellipse:NSObject <Graphics>

    @end

        #import "Ellipse.h"

    @implementation Ellipse
    -(void)onDraw
    {
        NSLog(@"draw ellipse");
    }
    @end

        

        Triangle类的实现

        每日一道理
    因为自信,在呀呀学语时,我靠着纤嫩的双腿,迈出人生的第一步;因为自信,我一次次将第一名的奖状高高举起;因为自信,我毫不吝惜地剪掉飘逸的长发,在运动场上展现风采……感谢自信,它给了我一双翅膀,让我在电闪雷鸣中去飞翔,在风雨中去搏击人生!

        #import <Foundation/Foundation.h>
    #import "Graphics.h"

    @interface Triangle : NSObject <Graphics>

    @end


    #import "Triangle.h"

    @implementation Triangle
    -(void)onDraw
    {
        NSLog(@"draw triangle");
    }

    @end

    main函数的实现

    int main(int argc, const char * argv[])
    {

        @autoreleasepool {
            id test;
            test=[[Ellipse alloc] init];
            [test onDraw];
            [test release];
            
            test=[[Triangle alloc]init];
            [test onDraw];
            [test release];
            
        }
        
        return 0;
    }

        the resutl is:

        draw ellipse

        draw triangle

        objective C的承继是单一承继,但是可以实现多个协议,用,割分

    文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。

  • 相关阅读:
    python timeit模块用法
    boto3库限速
    golang-Beego-orm创建的坑
    Java07
    Java06
    Java04
    Java03
    c
    Mac 安装GCC
    命令: go build
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3065416.html
Copyright © 2011-2022 走看看