OC语言day03-08继承基本概念

pragma mark 继承基本概念

pragma mark 概念

/*
 当前代码存在的问题, 重复代码太多
 
 可以利用继承来解决 当前重复代码太多的问题
 只要A类继承了B类, 那么B类就拥有了A类的所有属性和方法 (对象方法 和 类方法)
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类
#import "IPhone.h"
#import "Android.h"

#pragma mark main函数
int main(int argc, const char * argv[])
{
#warning 继承概念

    
    IPhone *p = [IPhone new];
    [p signalWithNumber:@"13813813888"];

    Android *a = [Android new];
    [a signalWithNumber:@"13288887777"];

    
    [IPhone brand];
    [Android brand];
    
    [p setCpu:1000];
    NSLog(@"cpu = %i",[p cpu]);
    
    return 0;
}



IPhone.h //苹果手机 类 (子类)
#import <Foundation/Foundation.h>

#import "Phone.h"
// 继承了某个类的类 我们称之为子类

// 其实在类名的后面加上 : NSObject, 就是让当前类 继承 NSObject类
// new方法就是继承过来的
// isa 指针
// 继承语法 : @interface 类名 : 需要继承的类

@interface IPhone : Phone

- (void)setCpu:(int)cpu;

- (int)cpu;
/*
{
    int _cpu;
}

// 打电话
- (void)signalWithNumber:(NSString *)number;

// 发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content;
*/




@end
IPhone.m
#import "IPhone.h"

@implementation IPhone

/*
// 打电话
- (void)signalWithNumber:(NSString *)number
{
    NSLog(@"利用iPhone手机打电话给%@",number);
}

// 发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content
{
    NSLog(@"利用iPhone手机发短信给%@,内容是%@",number,content);
}

 */

- (void)setCpu:(int)cpu
{
    _cpu = cpu;
}
- (int)cpu
{
    return _cpu;
}

@end

Android.h //安卓手机 类 (子类)
#import <Foundation/Foundation.h>
#import "Phone.h"
@interface Android : Phone
/*
{
    int _cpu;
}

// 打电话
- (void)signalWithNumber:(NSString *)number;

// 发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content;

*/

- (void)setCpu:(int)cpu;

- (int)cpu;

@end
Android.m
#import "Android.h"

@implementation Android

/*
// 打电话
- (void)signalWithNumber:(NSString *)number
{
    NSLog(@"利用iPhone手机打电话给%@",number);
}

// 发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content
{
    NSLog(@"利用iPhone手机发短信给%@,内容是%@",number,content);
}
*/

- (void)setCpu:(int)cpu
{
    _cpu = cpu;
}
- (int)cpu
{
    return _cpu;
}
@end

Phone.h //手机类 (父类)
#import <Foundation/Foundation.h>
// 被继承的这个类 我们称之为父类 / 超类

@interface Phone : NSObject
{
    int _cpu;
}

// 父类打电话
- (void)signalWithNumber:(NSString *)number;

// 父类发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content;

// 品牌
+ (void)brand;
@end
Phone.m
#import "Phone.h"

@implementation Phone

// 父类打电话
- (void)signalWithNumber:(NSString *)number
{
    NSLog(@"利用手机打电话给%@",number);
}

// 父类发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content
{
    NSLog(@"利用手机发短信给%@,内容是%@",number,content);
}

// 品牌
+ (void)brand
{
    NSLog(@"品牌");
}
@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容