zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    PYTHON简介
    zabbix4.0搭建2
    zabbix4.0搭建1
    zabbix监控
    Linux中vim编辑命令
    零基础逆向工程25_C++_02_类的成员权限_虚函数_模板
    零基础逆向工程24_C++_01_类_this指针_继承本质_多层继承
    零基础逆向工程23_PE结构07_重定位表_IAT表(待补充)
    零基础逆向工程22_PE结构06_导入表
    零基础逆向工程21_PE结构05_数据目录表_导出表
  • 原文地址:https://www.cnblogs.com/qing92/p/4951082.html
Copyright © 2011-2022 走看看