博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是多态
阅读量:5145 次
发布时间:2019-06-13

本文共 1116 字,大约阅读时间需要 3 分钟。

什么是多态:
多态就是父类指针指向子类指针。
 
什么意思呢?
首先,子类要继承父类
那么就子类可以调用父类的东西
相当于把父类的东西在子类复写了一遍
 
那么这个时候我在子类把在父类继承过来的的东西自己写一遍,并且改了继承过来方法里面的东西
 
这个时候我要调用父类的指针调用子类对象的方法,就会首先在子类里面查找,找到之后就打印出来,如果没有找到就会在父类里面查找,然后打印出来。
 
这里面如果子类自己增加方法,而父类没有,就不能调用,因为父类里面没有。
也就是说父类和子类的方法要一一对应。
 
父类可以增加方法,而子类自己增加,就算是自己增加,父类指针也不能调用新增的方法。
 
 
看下面的代码:
mian 函数
 
#import <Foundation/Foundation.h>
#import "Animal.h"
#import "Pig.h"
#import "Dog.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Animal *A =[Animal new];
        A=[Pig new];
        [A eat];
        [A walk];
        A=[Dog new];
        [A eat];
        [A walk];
        return 0;
    }
}
 
-------------------------------------------
动物的方法也就是父类
父类里面写的方法子类可以继承过去
#import <Foundation/Foundation.h>
@interface Animal : NSObject
-(void)eat;
-(void)walk;
@end
 
#import "Animal.h"
@implementation Animal
-(void)eat{
    NSLog(@"吃东西");
}
-(void)walk;
{
    NSLog(@"走路");
}
@end
 
---------------------------------
Pig类继承了动物类
#import "Animal.h"
@interface Pig : Animal  
//继承了Animal
@end
 
#import "Pig.h"
@implementation Pig
-(void)eat
{
    NSLog(@"大口吃东西");
}
-(void)sleep;
{
    NSLog(@"睡觉");
}
@end
----------------------------------- 

转载于:https://www.cnblogs.com/handada/p/5628050.html

你可能感兴趣的文章
图片标签img
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
并发编程简介
查看>>
wow 各职业体验(pvp)
查看>>
Streaming的receiver模式
查看>>
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
观察者模式
查看>>
cout和printf
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>