zoukankan      html  css  js  c++  java
  • 浅谈Objective-C继承和多态

    继承的试用场合:

    • 当两个类拥有相同的属相和方法时,就可以将相同的属性和方法抽取到一个父类中。
    • 当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类,也可以考虑使用组合。
    • 继承:###是XXX,如狗是动物,可以让狗继承动物类
    • 组合:###拥有XXX,如学生有书,可以让书这个类作为学生类的属性。

    继承的使用注意:

    • 编译器从上往下执行,所以在子类前面至少应该要有父类的声明;
    • OC中不允许子类和父类拥有相同名称的成员变量;
    • OC中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果没有则一层一层往上找;
    • 重写即子类重新实现了父类中的某个方法,覆盖了父类以前的实现。你重新实现的方法,必须要和父类的方法原型相同,即有相同的返回值类型和参数。
    • 方法可以从父类继承到子类,但是不可以从子类到父类。

    多态:用一个父类的指针指向子类的对象,在函数调用时可以调用到正确版本的函数。

    • 1.用一个父类的指针指向一个子类的对象。
    • Animal *b = [[Cat alloc] init];
    • 2.用一个父类的指针当函数的形参,用这个指针可以接收到任何它的子类的对象也包括他自己。
    • 3.在复合类中,尽量引用高层次的类当作类的成员变量,这样可以通过它创建出它所对应的任何子类对象包括它自己。
  • 相关阅读:
    CSS3---用户界面
    CSS3---媒体查询与响应式布局
    HDU 5285 wyh2000 and pupil
    POJ 2488 A Knight's Journey
    POJ 1067 取石子游戏
    POJ 2777 Count Color
    POJ 3259 Wormholes
    Project Euler 26 Reciprocal cycles
    POJ 2104 K-th Number
    POJ 1013 Counterfeit Dollar
  • 原文地址:https://www.cnblogs.com/s-y-j/p/5756729.html
Copyright © 2011-2022 走看看