第03天OC语言(08):继承基本概念
2017-07-20 本文已影响7人
liyuhong
- 不要等到明天,明天太遥远,今天就行动。
须读:看完该文章你能做什么?
知道什么是继承
学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)
什么是类
一、本章笔记
当前代码存在的问题 : 重复代码太多
可以利用 继承来解决当前重复代码太多的问题
只要 A类继承了B类, 那么 B类 就拥有了 A类的所有属性 和方法
二、code
main.m
#pragma mark 08-继承基本概念
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "IPhone.h"
#import "Android.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
IPhone *p = [IPhone new];
[p signalWithNumber:@"10010"];
Android *a = [Android new];
[a signalWithNumber:@"20020"];
[IPhone brand];
[Android brand];
[p setCpu:222];
NSLog(@"cpu = %i",[p cpu]);
return 0;
}
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
>>>.m
iPhone
>>>.h
#import <Foundation/Foundation.h>
#import "Phone.h"
/*
其实 在类名的后面 加上 : NSObject, 就让当前类 继承 NSObject
new 方法就是继承过来的
isa 指针
继承的语法 @interface 类名 : 需要继承的类
*/
//@interface IPhone : NSObject
@interface IPhone : Phone
/*
{
int _cpu;
}
// 打电话
- (void)signalWithNumber:(NSString *)number;
// 发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content;
*/
- (void)setCpu:(int)cpu;
- (int)cpu;
@end
>>>.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
>>>.m
#import "Android.h"
@implementation Android
/*
// 打电话
- (void)signalWithNumber:(NSString *)number
{
NSLog(@"利用Android手机打电话给%@",number);
}
// 发短信
- (void)sendMessageWithNumber:(NSString *)number andContent:(NSString *)content
{
NSLog(@"利用Android手机发短信给%@,内容是%@",number,content);
}
*/
- (void)setCpu:(int)cpu
{
_cpu = cpu;
}
- (int)cpu
{
return _cpu;
}
@end
image.png