博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-c 继承,多态,封装
阅读量:7052 次
发布时间:2019-06-28

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

hot3.png

.m文件

//

//  main.m

//  Objective-c 继承

//  Created by 非凡 on 15/10/10.

//  Copyright (c) 2015 非凡. All rights reserved.

//

#import <Foundation/Foundation.h>

//引入其他类的头文件是让你实力化的对象认识这是什么鬼

//引入Car头文件

#import "Car.h"

//引入zilei头文件

#import "zilei.h"

//引入Father头文件

#import "Father.h"

//引入Son头文件

#import "Son.h"

//引入chievement头文件

#include "chievement.h"

//引入Jisuan头文件

#include "Jisuan.h"

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

    {

        

         NSLog(@"--------------------------------------------");

         //父类

        //创建对象或实例化对象

        Car* _car=[Car new ];

        //调用实例化后的方法

        [_car setNumber:4];

        [_car run];

        

        

        //继承后的子类,子类可以继承父类的方法和属性

        //创建对象或实例化对象

        zilei* zx =[zilei new];

         //调用实例化后的方法

        [zx setNumber:5];

        [zx setName:@"雪弗莱"];

        [zx setSpeed:80];

        [zx run ];

        

        

        //父亲儿子跑跳练习

        NSLog(@"--------------------------------------------");

        //创建对象或实例化对象

        Father* ability1=[Father new];

         //调用实例化后的方法

        [ability1 setNumber:2];

        [ability1 run];

        [ability1 jump];

        //创建对象或实例化对象

        Son* ability2=[Son new];

         //调用实例化后的方法

        [ability2 set_Number:1];

        [ability2 run];

        [ability2 jump];

        [ability2 run];

        

        

          //父类的指针指向子类,调用的是子类的方法

        //多态应用

        //多态以类作为参数,那么就只能输入类名,其他参数均无效

        NSLog(@"-------------------------------------");

        

        [ability2 duotai:ability1];

        

        

         NSLog(@"--------------------------------------------");

        //练习2练习封装(属性的封装)

        //创建对象或实例化对象

        chievement* perform=[chievement new];

        //调用实例化后的方法

        [perform setOc_achievement:30];

        [perform setC_achievement:20];

        [perform setZongfen];

        [perform setPingjunfen];

        [perform printf];

        //调用返回值

       // [perform setZongfen];

        //[perform setPingjunfen];

        

        //打印返回值

        NSLog(@"总和为:%.2f 平均值为:%.2f",[perform setZongfen],[perform setPingjunfen]);

        

        

          NSLog(@"--------------------------------------------");

        //练习三  

        //创建对象或实例化对象

        Jisuan* jieguo=[Jisuan new];

        //调用实例化后的方法

        // 输入参数

        

        [jieguo setA:13 setB:5];

        

        NSLog(@"和值为:%i,平均值为:%i",[jieguo Hezhi], [jieguo Pingjunshu]);

        

    

    }

    return 0;

}

zilei.h文件

#import <Foundation/Foundation.h>

//引入Car父类头文件,让子类知道Car是什么。

#import "Car.h"

//子类也可以有自己的属性和自己的方法

@interface zilei :Car{

    NSString * name;

    int Speed;

}

  //设置属性

-(void)setSpeed:(int)newSpeed;

-(void)setName:(NSString*)newName;

//设置方法

-(void)run;

-(void)_run;

@end

zilei.m文件

//

//  zilei.m

//  Objective-c 继承

//

//  Created by 非凡 on 15/10/10.

//  Copyright (c) 2015 非凡. All rights reserved.

//

#import "zilei.h"

@implementation zilei

-(void)run{

    

    //super的意思是父类,super可以调用父类的方法

    //[super run];

    //self 的意思是本身,self可以调用本类中的方法

    [self _run];

    

    

    

    //NSLog(@"%i车是%@,的速度是%i",_number,name,Speed);

}

-(void)setSpeed:(int)newSpeed{

    Speed=newSpeed;

}

-(void)_run{

    NSLog(@"%i车是%@,的速度是%i",_number,name,Speed);

}

-(void)setName:(NSString *)newName{

    name=newName;

}

@end

Father.m文件

#import "Father.h"

@implementation Father

-(void)setNumber:(int)newNumber{

    number=newNumber;

 

}

-(void)run{

    NSLog(@"父亲和儿子都能跑");

}

-(void)jump{

    NSLog(@"父亲能跳%i",number);

}

//多态用法

//当你将类作为参数类型时,就是对不同的方法及属性响应不同

-(void)duotai:(Father*)newduotai{

    

    NSLog(@"父亲能跳%i",number);

}

@end

转载于:https://my.oschina.net/u/2483781/blog/516004

你可能感兴趣的文章
茄子烧豆角
查看>>
Jmeter(三)-简单的HTTP请求(非录制)
查看>>
linux查看系统类型和版本
查看>>
ThinkPHP将上传问件添加到数据库
查看>>
python 不同目录间的模块调用
查看>>
centos7 安装 chrome
查看>>
IOS 关于上传图片裁剪以及压缩,确保高清
查看>>
HDU - 6115 Factory (LCA 倍增)
查看>>
unity客户端与c++服务器之间的简单通讯_1
查看>>
Python_反射
查看>>
Codeforces-963 D Frequency of String
查看>>
MyBatis-mybatis全局映射文件解析
查看>>
WebApi 跨域解决方案 --CORS
查看>>
MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken
查看>>
单独编译Android源代码中的模块
查看>>
manjaro安装mysql5.7
查看>>
记录零散的知识点
查看>>
H5上传图片并使用canvas制作海报
查看>>
springmvc学习笔记
查看>>
LRU算法的设计
查看>>