美文网首页
OC学习总结2 派生、重写和多态

OC学习总结2 派生、重写和多态

作者: Skipper_1_422 | 来源:发表于2016-08-24 17:38 被阅读0次
  1. 继承和派生
    继承是指一个新类拥有全部被继承类的属性和方法,通过继承产生新类的过程也称作派生。
    派生: 由子类创建的方法或者属性。子类除了继承之外的属性和方法。派生的目的是扩展、修改父类的功能。
    继承机制使得新类不仅有自己特有的属性和方法,而且有被继承类的全部属性和方法。
    说明:
    1)基类的私有属性能被继承,不能被使用。
    2)OC中的继承是单继承:也就是说一个类只能一个父类,不能继承多个父类

2.实例变量的修饰符
详细说明如下:
1)@public (公开的)在有对象的前提下,任何地方都可以直接访问。
2)@protected (受保护的)只能在当前类和子类的对象方法中访问 (默认访问权限)
3)@private (私有的)只能在当前类的对象方法中才能直接访问
4)@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中就可以直接通 过变量名访问

3.方法的重写
重写就是从父类继承的方法,不适用于子类时,可以直接声明父类的同名方法,并定义。 不用考虑父类中,方法已存在的问题。 重写后,子类可以通过super调用父类的方法。

4.多态
多态:父类的指针可以指向子类的对象,而子类的指针不能指向父类的对象。
多态常与isKindOfClass、isMemberOfClass结合起来用

多态的实现是通过子类重写父类方法,建立一个父类的对象用子类初始化。父类对象调用方法时将实现子类中重写的父类方法。

#import <Foundation/Foundation.h>

@interface Animal : NSObject

- (void)barkWith:(NSString *)animalName;

@end
#import "Animal.h"

@implementation Animal

-(void) barkWith:(NSString *)animalName {
    NSLog(@"父类 %@ is barking",animalName);
}

@end
#import "Animal.h"

@interface Bull : Animal

@end
#import <Foundation/Foundation.h>
#import "Animal.h"
#import "Bull.h"
#import "Sheep.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        // 多态: 父类的指针可以指向子类的对象,而子类的指针不能指向父类的对象
        // 多态常与isKindOfClass、isMemberOfClass结合起来用
        Animal * a = [[Bull alloc]init];
        [a barkWith:@"哞哞"];
        
        // 错误用法
//        Bull * b = [[Animal alloc]init];
//        [b barkWith:@"小牛"];
    
    }
    return 0;
}

相关文章

  • OC学习总结2 派生、重写和多态

    继承和派生继承是指一个新类拥有全部被继承类的属性和方法,通过继承产生新类的过程也称作派生。派生: 由子类创建的方法...

  • OC.派生、重写、多态

    1.派生类是在基类的基础之上设计出来的, 其目的是扩展基类的功能或修改基类功能. 派生类包含了基类的所有特征与功能...

  • IOS学习笔记之OC派生、重写、多态的概念

    一、派生 类的派生是由已存在的类产生新类的过程,已有的类叫基类,产生的新类叫派生类,其目的是扩展基类的功能或修改基...

  • c++多态实现的机制

    什么是c++的多态? 多态的意思是,当有基类和派生类的时候,在基类的函数前加上virtual关键字,在派生类中重写...

  • 了解派生、重写、多态的概念

    派生类:利用继承机制,新的类可以从已有的类中派生。那些用于派生的类称为这些特别派生出的类的“基类”。 多态(Pol...

  • 10.26学习总结

    今天学习了多态和抽象类。 多态学了虚方法、方法的重写,多态和继承的区别,重写和隐藏的区别。 抽象类学了抽象类的方法...

  • 十三(5)、面向对象之函数的封装和重载 ------ 2020-

    1、封装:低耦合高内聚; 2、多态:重载和重写;

  • 10月26日C#学习总结

    今天学习了多态、方法重写、重写和隐藏的区别、抽象 多态:不同类型的对象对于同一方法表现出了不同的行为的方式就是多态...

  • 面向对象的基本原则

    基本要素: 封装 , 继承 , 多态 多态 : 注意重写和重载 重写: 子类重写父类的方法 重载: 同样的方法名 ...

  • 多态

    多态的总结,把几个知识点一起总结了: 1.继承 2.接口 3.重写 4.多态 5.一些相关知识点 可能不够全面仔细...

网友评论

      本文标题:OC学习总结2 派生、重写和多态

      本文链接:https://www.haomeiwen.com/subject/kcdosttx.html