文档章节

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

lyh2017iOS
 lyh2017iOS
发布于 2017/07/13 11:18
字数 513
阅读 1
收藏 0
  • 不要等到明天,明天太遥远,今天就行动。

#####须读:看完该文章你能做什么?

知道什么是继承

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

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
Swift编程权威指南第2版 读后收获

  自从参加工作一直在用OC做iOS开发。在2015年的时候苹果刚推出swift1.0不久,当时毕竟是新推出的语言,大家也都很有激情的学习。不过在学完后发现很难在实际项目中使用,再加上当时公司项...

滴水微澜
08/14
0
0
《Swift编程语言教程》中文翻译及读书笔记page21

《The Swift Programming Language》中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swift作为一门语言对的新老语言的继承与...

中游学院
2014/07/06
0
0
从 OC 到 Swift 的快速入门与专业实践

只会介绍与 OC 有明显区别的地方,不会介绍 OC 中没有的,比如元组。当前总结也只是蜻蜓点水而已,但是有 OC 的基础,看这些已经足够。 一、数据 Swift 是类型安全的语言: Swift 必须明确数...

CoderHG
08/04
0
0
Swift2.0与OC混编实验--动态库(一)

完整的Demo下载 做了以下几个实验 验证Swift和OC的项目可以使用任意语言开发的动态库 1、创建了一个Swift语言的动态库 2、创建了一个OC语言的动态库 3、创建了一个SwiftApp项目,在项目中同时...

泊竹
2016/01/17
434
0
02 - Object-C 面向对象

面向对象基本术语 面向对象 Object Oriented,简称OO 面向对象编程 Object Oriented Programming,简称OOP 2. 类和对象 2.1、类的声明 类名属性的命名规则:有意义、驼峰标识、首字母大写(类...

口十耳
2015/12/22
68
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内存模型是怎么解决缓存一致性的?

在再有人问你Java内存模型是什么,就把这篇文章发给他。这篇文章中,我们介绍过关于Java内容模型的来龙去脉。 我们在文章中提到过,由于CPU和主存的处理速度上存在一定差别,为了匹配这种差距...

Java填坑之路
13分钟前
1
0
vue-cli 3.0 初体验

最近复习了下vue,突然发现vue-cli已经更新到3.0版本了,并且变化蛮大,看来要不停的学习,真是一入前端深似海。 安装步骤: 1、全局安装 npm install -g @vue/cli Vue CLI 的包名称由 vue-...

tianyawhl
15分钟前
0
0
Angular进阶之路

【初级】会写页面,能出东西。 给定环境和 rest API,不用第三方库,能在十分钟内完成一个 master/detail 结构的带路由的应用(可以不管美观)。 知识点:Angular CLI、组件、路由、HTTP 服务...

陆小七的主页
17分钟前
0
0
Redis缓存数据库安全加固指导(一)

背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一位,但是原生...

中间件小哥
17分钟前
0
0
百万级数据mysql分区

1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。 2. 表分区与分表的区别 分表...

罗文浩
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部