zoukankan      html  css  js  c++  java
  • 类的三大特性

    封装

      对于方法:

        1.需要给外部使用的属性和方法放在头文件里面

        2.自己私有的方法直接写在实现文件中

        3.私有的属性写在实现文件中匿名拓展

          @interface Person ()

            @property (nonatomic, strong) NSString *password;

          @end

      对于成员变量:(头文件中)

        1.@public  公有的 类自己可以访问,子类可以继承,外部也可以访问 访问方式 hr->name

        2.@private 私有的 类自己可以访问,子类无法继承,外部不可以访问

        3.@protected 受保护的 类自己可以访问, 子类可以继承, 外部不可以访问。默认。


    继承

      当工程中或者系统框架里面已经存在某些类,需要在这些类的基础上添加一些方法或者属性,那么可以选择继承,*oc不可多继承

      1.术语

        父类:要被继承的类

        子类:自己定义准备继承于父类的类

        根类:所有类的父类

          @interface Animal(子) : NSObject(父)

        super:不是指向父类的指针,而是一个标识 

        self:代表当前调用者,隐藏属性

          

      2.类是自动向上装换的

      @interface Person : NSObject

        - (void)doSomething:(Father *)fa;

      @end

     

      Son *s = [[Son alloc] init];

      s.name = @"son";

      Person *p = [[Person alloc] init];

      [p doSomething:s];

      需要一个Father类型的参数,但是传递了一个Son类型的参数,自动进行了转换


     

    多态

      同一个方法,拥有不同的实现

        1. 使用继承的方式实现多态

        2. 使用协议的方式来实现多态

           定义一个协议

            @protocol 协议名 <父协议>

              @required  必须实现

              @optional  选择实现

            @end

          使用一个协议

            @interface 类名 : 父类<协议名>

            @end

     

     

  • 相关阅读:
    .net通用签名方法 webapi签名方法
    实体类的[Serializable]标签造成WebAPI Post接收不到值
    html5获取位置信息,h5获取位置信息
    C#采集:图灵机器人信息
    virtualbox压缩虚拟机硬盘文件vhd
    WinFrom控件双向绑定
    ILMerge合并多个DLL
    在Windows Server 2012 R2的Hyper-V中设置虚拟机启用增强会话模式
    (转)✈工欲善其事,必先利其器✔™
    .NET使用ZXing.NET生成中间带图片的二维码
  • 原文地址:https://www.cnblogs.com/huoran1120/p/5066174.html
Copyright © 2011-2022 走看看