随笔 - 5  文章 - 0  评论 - 1  阅读 - 880

OC总结第五讲:多态

学习oc我们要了解到oc有三种面向对象的特征:封装,继承,多态!前面已经总结了封装,继承,下面说一下多态。

一、什么是多态呢?

          多态按照字面的意思就是“多种状态”。在面向对象语言中,方法的多种不同的实现方式即为多态。简单的说,就是一句话:允许将子类类型的方法赋值给父类类型的方法。父类指针指向子类对象,编译时会认为是父类的对象,但运行时,会检测其具体是谁的对象,从而我们可以知道没有继承也就没有多态!  

二、继承和多态有什么区别呢?

         很显然,继承是子类使用父类的方法,而多态则是父类使用子类的方法。

程序:

建立一个人和学生的类,学生类继承于人这个类,它们都有睡觉的方法!

 main函数:

#import <Foundation/Foundation.h>

#import "Student.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Person *p = [[Student alloc]init];//父类指针指向子类对象,编译时会认为是父类的对象,但运行时,会检测其具体是谁的对象

        [p sleep];

 }

    return 0;

}

Person类:

#import <Foundation/Foundation.h>

@interface Person : NSObject

-(void)sleep;

@end

 

 

#import "Person.h"

@implementation Person

-(void)sleep{

    NSLog(@"睡觉");

}

@end

Student类:

#import "Person.h"

@interface Student : Person

@end

 

#import "Student.h"

 @implementation Student

-(void)sleep{

    NSLog(@"学生在教室趴着睡");

}

@end

 

输出结果为:学生在教室趴着睡

posted on   风一样的青  阅读(116)  评论(0编辑  收藏  举报
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示