1.@interface可以实现三种功能:

(1)声明类:Class
(2)声明类别:Category
(3)声明扩展:Extension
2.声明类:这个就比较常用了,在这里不多说。代码:
@interface SomeClass : NSObject <SomeDelegate>{
}
@end
3.声明类别
(1)类别能在不更改原来的类代码的情况下,为类增加方法或者重写类的方法。
(2)类别只能添加或者重写方法,但是不能添加变量。
(3)有网友说将类别名设定为“Private”,就能使类别中增加的方法成为私有方法,这个是不成立的(经过实际代码验证)。
(4)如果是重写类的已经存在的方法,则此重写的方法会在整个运行环境中生效,而且不需要在用到的地方导入实现类;
    如果是为类增加新的方法,则需要在用的地方导入。
(5)代码:
@interface ClassName(类别名){
}
@end

4.声明扩展:
(1)扩展和类别语法上的的区别很简单,就是类别名省略,只保留括号。
(2)扩展只是增加原来类的方法和变量的声明,而不包含实现,所以,扩展没有独立的实现(@implementation),而是和原来的类共享一个实现。
(3)扩展不仅能在原来类的基础上增加方法,也能增加变量。
(4)如果将扩展写到实现文件中,则增加的变量和方法就是私有变量和私有方法。
(5)代码:
@interface ClassName(){  
}
@end

@interface使用详解相关推荐

  1. [转载] java中接口(interface)详解

    参考链接: Java接口Interfaces 接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. ...

  2. java中接口(interface)详解

    接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...

  3. CFI(Common Flash Interface)详解

    原文链接:https://blog.csdn.net/emma3slp/article/details/5591086 [什么是CFI] CFI(Common Flash Interface),是JE ...

  4. 高通平台开发系列讲解(PCIE篇)MHI (Modem Host Interface)驱动详解

    文章目录 一.MHI驱动代码 二.MHI读数据流程 三.MHI写数据流程 沉淀.分享.成长,让自己和他人都能有所收获!

  5. android中接口的作用是什么意思,详解Android接口Interface的使用和意义

    本文介绍是Android的一个重要的东西,接口Interface,详解两个方面: (1)Java是继承的,接口Interface是可以多个的,恰恰弥补了这个缺点. (2)回调,接口Interface里 ...

  6. JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited)

    转载自 JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited) jdk1.5起开始提供了4个元注解,用来定义自定义注解的注解,它们 ...

  7. PHP接口interface详解

    PHP interface详解 首先提三个问题 为什么要用接口? 什么是接口? 接口怎么使用? 什么是接口 使用关键词 interface 定义,就像是定义一个标准的类一样,但其中定义所有的方法都是空 ...

  8. functional java_java中functional interface的分类和使用详解

    java 8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function. 在java 8之前,如果需要使用到匿名function需要new一个类的实现,但是有了lambda ...

  9. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

最新文章

  1. python基础-变量运算符(3)
  2. 前端html继承的方式,好程序员web前端教程之JS继承实现方式解析
  3. Python gui编程pyQt5安装步骤
  4. 20170804 - 今日技能封装 - Q
  5. TRUNCATE vs DELETE命令
  6. ajax结合java,ajax技术应用详细分析(后端java与客户端请求的结合)
  7. Spring Boot使用layui的字体图标时无法正常显示 解决办法
  8. DbContext 和ObjectContext两者的区别
  9. 特斯拉回应海南碰撞事故:地面湿滑 车主踩制动踏板幅度较轻
  10. java缓存技术redis原理_Java架构师-5分钟带你深入理解Redis的持久化方式及其原理...
  11. flask—wtforms
  12. python struct 45s_python32版本,struct.error: argument for 's' must be a bytes object - 小众知识...
  13. 下载Bootstrap
  14. html设置背景颜色以及透明度代码,HTML怎么设置背景颜色透明度?
  15. 整数拼接(记忆化更新)
  16. 华为HMS:风雨突然,仍求自我
  17. Task2 数据分析 (1)
  18. [Linux Audio Driver] 移植外部CODEC常见编译报错解决(持续更新)
  19. iconv 静态库的编译
  20. 位图(bitset)的使用【STL】

热门文章

  1. nuxt项目打包上线之二
  2. 分别安装搭建lamp服务环境
  3. word 2013 标题设置多级列表
  4. C#/C++/Fortran 在32位/64位下数学计算性能对比
  5. 微软研发致胜策略读书笔记(转)
  6. linux的基础知识——时序竞态
  7. 牛客16585 统计单词数
  8. 《动手学深度学习》第一天 (2.1+2.2)
  9. QT信号与槽-启动系统程序以及相关控件介绍
  10. 【剑指offer】面试题10- I:斐波那契数列(Java)