• [Objective-c 基础


     A.对象的多种形态

    1.父类指针指向子类对象
    2.调用方法的时候,会动态监测真实地对象的方法
    3.没有继承,就没有多态
    4.好处:用一个父类指针可以指向不同的子类对象
    5.强制转换类型之后就能使用子类特有的方法,否则会出现warning(仍可以正常运行,即不论指针类型,只要对象存在实际方法就可以运行)
    复制代码
     1  
     2 #import <Foundation/Foundation.h>
     3 
     4 @interface Animal : NSObject
     5 - (void) eat;
     6 @end
     7 
     8 @interface Dog : Animal
     9 - (void) run;
    10 @end
    11 
    12 @interface Cat : Animal
    13 
    14 @end
    15 
    16 
    17 @implementation Animal
    18 - (void) eat
    19 {
    20     NSLog(@"吃东西---");
    21 }
    22 
    23 @end
    24 
    25 @implementation Dog
    26 - (void) eat
    27 {
    28     NSLog(@"狗狗吃东西");
    29 }
    30 
    31 - (void) run
    32 {
    33     NSLog(@"狗狗跑起来了");
    34 }
    35 @end
    36 
    37 @implementation Cat
    38 
    39 - (void) eat
    40 {
    41     NSLog(@"猫猫吃东西");
    42 }
    43 
    44 @end
    45 
    46 void feed(Animal *animal)
    47 {
    48     NSLog(@"开始喂动物");
    49     [animal eat];
    50 }
    51 
    52 
    53 int main()
    54 {
    55     Animal *a = [Dog new];
    56     [a eat];
    57     Animal *c = [Cat new];
    58     [c eat];
    59    
    60     feed(a);
    61     feed(c);
    62    
    63     Dog *dog = (Dog *)a;
    64     [dog run];
    65    
    66     return 0;
    67 }
    如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
  • 相关阅读:
    Swift 构造与析构
    Swift 协议
    Swift 扩展
    Swift 多态
    Swift 继承
    Swift 封装
    Swift 方法
    Swift 属性
    Swift 对象
    Swift 类
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4501508.html
Copyright © 2020-2023  润新知