iOS编程——多态

来源:互联网 发布:数控车大螺距螺纹编程 编辑:程序博客网 时间:2024/06/12 20:19

       多态为面向对象的三大特性之一

       OC指针类型的变量有两个:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时的类型和运行时的类型不一致,就可能出现所谓的多态

        大家或许会问,那要这个多态有什么用呢

        例如,现在有一家公司,有一台打印机,可以打印黑白的,也可以打印彩色的,那么就有一个父类,还有两个子类,黑白打印机、彩色打印机,都继承了打印机这个父类。打印机执行的工作方法是“用打印机打印纸张”,黑白打印机工作方法为“用黑白打印机打印纸张”,彩色打印机工作方法为“用彩色打印机打印纸张”。

        然后定义一个人的类,这个类里也要为每个打印机定义一个方法,执行时需要创建一个人的对象,然后需要哪个打印机就要创建哪个打印机的对象,然后调用它的工作方法

        但是他有一个坏处,就是重复代码太多,如果公司最后再买一台3D打印机,代码就都得改。

        这时候就可以使用多态,可以节省代码,添加新的打印机是不用修改代码,只要在外面再添加一个类就可以了。

        多态的使用就是用父类进行编译,用子类来执行。在人的类里,也只需要定义一个使用打印机的方法,形参用父类打印机来声明,调用的时候也只调用这个方法,传入的参数可以传入子类的对象。

        这样就可以定义一台打印机,传进的是什么打印机,都只用同一个语句来调用方法,是不是就简洁了许多呢


       

0 0
原创粉丝点击