美文网首页八天学会OC
第03天OC语言(08):继承基本概念

第03天OC语言(08):继承基本概念

作者: liyuhong | 来源:发表于2017-07-20 16:10 被阅读7次
  • 不要等到明天,明天太遥远,今天就行动。
须读:看完该文章你能做什么?

知道什么是继承

学习前:你必须会什么?(在这里我已经默认你具备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

相关文章

  • 第03天OC语言(08):继承基本概念

    不要等到明天,明天太遥远,今天就行动。 须读:看完该文章你能做什么? 知道什么是继承 学习前:你必须会什么?(在这...

  • 1.6 继承

    本小节知识点: 继承基本概念 OC中的继承关系 OC中如何实现继承 1.继承基本概念 现实生活中的继承 交通工具类...

  • OC语言基本概念

    基本概念 oc面向对象语言,只需关注具有相关功能的对象,不必亲力亲为。 oc面向对象的三大特性:封装、继承(拷贝一...

  • OC面向对象—多态

    OC面向对象—多态 OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没...

  • 第08天OC语言(01):NSArray基本概念

    不要等到明天,明天太遥远,今天就行动。 须读:看完该文章你能做什么? NSArray的基本使用 学习前:你必须会什...

  • 第06天OC语言(08):分类基本概念

    不要等到明天,明天太遥远,今天就行动。 须读:看完该文章你能做什么? 不使用继承的情况下,为一个类扩充方法 学习前...

  • 内存管理

    一.内存基本介绍 1、OC内存管理的基本概念 2、OC内存管理的范围​管理范围:管理任何继承自NSObject的对...

  • Swift和Objective-C的区别

    Swift是静态语言。OC是动态的语言。Swift要变成动态,需要继承NSObject或者桥接OC来实现。 Swi...

  • Objective-C(简称OC)

    OC基础知识: OC继承了C语言的所有特点。 @ 表示C语言没有 OC所增加的 每次拿内存之后,要查看是否申请到内...

  • 多态

    OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。 在使用多态...

网友评论

    本文标题:第03天OC语言(08):继承基本概念

    本文链接:https://www.haomeiwen.com/subject/vxwvhxtx.html