Ios面试复习--泛型

1.Ios9 新特性---泛型

--1.在集合类数据中 ,直接索引出存储的某一对象调用更方便

规定该集合类的存储数据类型

直接调用方法更便利

--2.动态绑定属性类型

声明该对象持有某一泛型,并将该泛型,用作某属性类型,这样的设计优于id这种动态数据类型

声明某一变量为泛型

动态绑定对象的属性类型

2.泛型的协变和逆变

--1.协变 利用 __covariant 关键字 修饰泛型

既<__covariant ObjectType>

__covariant 协变 关键字 用于泛型数据强转类型 可以向上强转,子类可以转成父类

声明泛型后,同类型指针相互赋值,但是其泛型指针指向对象不同会报出警告

这时,由于Dog 继承于Pet 所以可以 通过协变关键字 __covariant 进行子类向父类的协变

通过 __covariant 关键字解决类似问题

--2. __contravariant 逆变关键字  用于泛型数据强转类型 可以向下强转,父类可以转成子类

使用同理

推荐阅读更多精彩内容

  • pdf下载地址:Java面试宝典 第一章内容介绍 20 第二章JavaSE基础 21 一、Java面向对象 21 ...
    王震阳阅读 79,402评论 26 513
  • 第8章 泛型 通常情况的类和函数,我们只需要使用具体的类型即可:要么是基本类型,要么是自定义的类。但是在集合类的场...
    一个会写诗的程序员阅读 792评论 7 10
  • object 变量可指向任何类的实例,这让你能够创建可对任何数据类型进程处理的类。然而,这种方法存在几个严重的问题...
    CarlDonitz阅读 234评论 0 5
  • 前言 泛型(Generics)的型变是Java中比较难以理解和使用的部分,“神秘”的通配符,让我看了几遍《Java...
    珞泽珈群阅读 2,142评论 4 25
  • 本文大量参考Thinking in java(解析,填充)。 定义:多态算是一种泛化机制,解决了一部分可以应用于多...
    谷歌清洁工阅读 135评论 0 1