黑马程序员——OC基础---继承

黑马程序员-OC语言之继承 ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、继承    1. 继承的好处:        1> 抽取了重复代码        2> 建立了类与类之间的联系   2. 子类可以拥有父类中的所有成员变量和方法 eg: {优快云:CO 阅读详情

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


继承OC中非常重要的内容之一,继承在现实生活中指获取父母的一切资源,在OC指子类获得父类的资源(实例变量和方法)


继承的好处是使代码的可重用性 提高,同时还建立了一种类和类的联系。

继承后子类A可以有父类B的方法和属性,如果父类B同时也是其他类C的子类,那么子类A也有C类的方法和属性,付过C类仍然有父类,那么子类A仍可继承到该类的属性和方法,一直继承到基类NSObject.

即 子类的方法和属性=子类自己独有的方法和属性+父类的方法和属性+爷爷类的方法和属性+...+基类的方法和属性


父类Animal的代码

<pre name="code" class="objc">#import <Foundation/Foundation.h>

@interface Animal : NSObject
{
    @private
    NSString *haHaWoBuHuiBeiJiCheng;
}
@property(nonatomic,assign)int age;
-(void)eat:(NSString*)foodName;
-(void)run;
@end



子类Dog

#import <Foundation/Foundation.h>
#import "Animal.h"

@interface Dog : Animal//以前这个位置是写基类NSObject,也就是继承NSObject类,现在我们继承自Animal,除了需要在中写继承类的名以外,还需引入父类的.h头文件

//子类自己的方法和属性
@end



如同父辈的财产未必会完全给子女一样,父类也并不是所有资源都会给子类。

父类的成员属性如果为

private:私有成员,可以被子类看见,不能被子类继承。

protected:保护成员,可以被子类继承。

public:公有成员,可以被子类继承。

父类的私有方法(只在.m文件实现,未在.h文件声明)也不能被子类继承

另:从子类往父类方向找,是一条单线,即一个类只能有一个父类,如果从父类往子类方向找,则可以有多条线,即一个类可以有多个子类,并且每个子类相互独立,可以有自己独有的属性和方法(类似于现实中我们只能有一个父亲,但我们却可以有很多子女)。


子类中不可以有和父类同名的属性,但可以有和父类同名的方法。

子类方法与父类方法同名即是方法的重写,子类重写父类的方法并不需要单独声明,只需要在.m文件中实现即可

重写之后,父类调用方法的时候调用的是自己的方法,子类调用重写方法的时候调用的是自己重写的方法,如果还想使用父类的方法,可以用super来调用父类的方法(重写 init方法的时候比用)。


Animal.m

#import "Animal.h"

@implementation Animal
-(void)eat{

    NSLog(@"动物----->吃");
    
}
-(void)bark{

    [self wocao];
    NSLog(@"动物----->叫");
}
//私有方法,不会被子类继承
-(void)wocao{

    NSLog(@"哈哈哈  HOHOhaheii");
}
@end

Dog.m

#import "Dog.h"

@implementation Dog
//重写父类的eat和bark方法
-(void)eat{
    
    NSLog(@"狗----->吃");
    
}
-(void)bark{
    
    NSLog(@"狗----->叫");
}
@end

类寻找方法,会先从自己找起,然后再找父类,爷爷类...基类直至报错

例如Dog的对象调用方法会先从自己的方法中找起,然后再到Animal类中找,最后到NSObject中找,这也是为什么一旦重写后,子类并不会调用父类的方法。


HFSS仿真平行线定向耦合器学习笔记 材料:FR4(玻璃纤维环氧树脂),介电常数:4.4,损耗角正切:0.02,厚度0.8mm。扫频方式:快速扫频,扫频范围:1.0GHz~3.0GHz,步进:0.01GHz。端口2是端口1关于Y轴对称,端口3,端口4是端口1和端口2关于X轴对称得到。求解中心频率:2.0GHz,迭代次数:20,收敛误差为0.02。右键设置边界条件----辐射边界。激励方式:集总端口激励。 阅读详情

相关推荐

elmos 524系列芯片笔记

芯片的工作工作原理:集成芯片Elmos524.03有发射回路和接收回路,手册有关的内部原理图,大致如下: 芯片会产生固有频率的电压信号,信号通过引脚DRV1、2输出给外部压电陶瓷片,产生固定频率的机械波,也就是所谓的超声波,超声波遇到障碍物时会反射,反射信号经过AINS、D引脚进入芯片,在芯片内部先后经过GAIN放大,滤波然后进入比较器,滤波后的信号(signal)同预先设定的阈值(threshold)比较产生信号输出。此信号最终会连接MCU处理器,需要重点关注。 基于这个内部的工作原

qq_38230916的博客 2489

【OC】类的继承

继承时面向对象的三大特性之一。OC具有单继承的特点,每个子类只有一个直接父类OC中的继承一般是单继承,也就是说一个子类只能有一个爸爸,但他还可以有爷爷,爷爷就是他的剪接父类。重写父类方法时方法名和形参标签一定要完全相同,否则就不能叫方法重写。这种重写我们叫方法重写或方法覆盖。使用super关键字可以在子类中调用被覆盖的成员变量以及方法,不过方法一定是实例方法。同时我们不能在父类与子类的接口部分定义相同名字的成员变量,但可以在不同类的实现部分与接口部分分别定义名字相同的成员变量。

weixin_72437555的博客 643

ESP32基于Arduino环境开发128*160 TFT_LCD屏幕显示照片

ESP32基于Arduino环境开发128*160 TFT_LCD屏幕显示照片

weixin_42854045的博客 2059

OC--继承和多态and指针

文章目录前言`初学继承和多态`一、继承1.继承的定义2.继承的特点二、使用步骤1.引入库2.读入数据总结 前言 初学继承和多态 一、继承 1.继承的定义 继承是面向对象的三大特征之一,OC的继承具有单继承的特点,即每个子类只能有一个父类。 继承的本质是一种“由一般到特殊的关系”,子类是一种特殊的父类。 也就是说,子类拓展了父类。父类派生了子类。 每个类只能有一个直接父类,但是可以有很多间接父类。NSbject是多有类的父类。 2.继承的特点 当子类继承父类时,将继承得到父类的如下东西: 1,全

weixin_61196797的博客 653

RV1126上YOLOv8部署实战:从模型转换到板端推理的完整避坑指南

本文提供了在瑞芯微RV1126芯片上部署YOLOv8目标识别算法的完整实战指南。内容涵盖从模型转换、环境搭建到板端推理代码编写的全流程,重点解析了RKNN-Toolkit使用、量化配置、内存优化及后处理实现等关键环节的常见问题与解决方案,旨在帮助开发者高效避坑,实现边缘AI应用的稳定落地。

pz89012345的博客 568

汽车工程师必看:从CAN到Ethernet,6种车载通信协议全解析(附应用场景对比)

本文全面解析了从CAN到Ethernet的6种车载通信协议,包括CAN、LIN、MOST、FlexRay等,并对比了它们的应用场景和技术特点。文章详细介绍了各协议的演进历程、技术优势及在现代汽车中的混合网络架构设计,为汽车工程师提供了实用的协议选型指南和未来通信技术发展趋势。

weixin_28683689的博客 493

oc——类的继承

oc——类的继承 🎇继承是面向对象的三大特征之一,在了解类的继承之前我们要先理解一下什么是父类,对于oc来说,每一个子类只有一个直接父类,通俗点讲,如果把人类看作一个父类,那么学生就是人类的一个子类,人类能干的事情学生一定也能干,但是学生能干的事情人类并不一定能干,首先我们来看一个例子。 我们首先来写一个Person类: //Person.h @interface Person : NSObject - (void) Work; @end //person.m #import <Foundatio

m0_62386635的博客 449

windows10下 iperf3测试带宽

客户端输入:"iperf3.exe -u -c 服务器IP地址 -b 5g" //客户端给服务器发送udp数据包,最大带宽为5g。客户端输入:“iperf3.exe -c 服务器IP地址 -P 10“//表示客户端10路并行给服务器发送TCP包;上图可知:带宽是15Gbps(这里不知道为什么下面测试的UDP会比这里TCP慢 按道理UDP不可能比TCP慢的5.)3. 验证是否下载成功,在打开的窗口中输入“iperf3.exe -v”,会出现安装的版本,表示安装成功了。5. iperf3参数。

xiaoqixiaoguai的博客 5894

OC继承详解与使用规则

1、OC中如果类A继承类B,B就成为A的父类。那么B的成员全部属于A的成员。相当于A全部拥有了B的所有成员(所有变量与所有方法)。即子类拥有父类中所有的成员变量和方法。 2、继承的使用场合: (1)如果有两个或者两个以上的类含有很多相同的成分(成员变量/方法相同)。那么就可以把它们相同的部分提取到一个单独的类中,让这些相似的类继承于它。继承的实质就是把多个类中相同的代码抽出来放到一个单独的类中,然...

iteye_18817的博客 398

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站。

代码讲故事 6491

数字盲水印嵌入和提取的实现基于小波变换DWT算法

数字盲水印是指在不知道原始图像的情况下,在其上嵌入水印并在后续的提取过程中能够恢复出原始水印的一种技术。本文介绍的数字盲水印嵌入和提取的实现方法基于小波变换DWT算法。具体来讲,DWT将信号或图像进行二次下采样和卷积滤波,使得高频分量的图像信息被集中在一个小区域内,方便进行嵌入和提取操作。其中 a 表示嵌入强度,而 watermark 则是用于嵌入的水印图像,这里我们嵌入的是一个全灰的图像。通过以上的代码,我们可以实现数字盲水印的嵌入和提取,并在一定程度上保护数字图片的版权安全。

HackWhisper的博客 515

【《Objective-C基础教程 》笔记ch04】(五)OC中的继承inheritance机制

一、为什么需要继承                            使用继承一方面继承了父类的特性,另一方便解决了重复代码维护问题。 二、继承之语法          1、 @interface 子类名:父类名          2、 OC只支持单继承,不支持继承多个父类。          3、 重构——移植和优

_______攻城无数_____、、、、、、 1924

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

理论开篇,理解什么是编程

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3113

黑马程序员-OC-继承

继承: 1,基类的私有属性能被继承,但不能被使用 2,OC继承是单继承,也就是一个类只能继承一个父类,不能继承多个父类。 方法重写 方法的重写,从父类继承的方法,可能这个方法并不适合子类,可以在子类中重写父类的方法。 注意事项: 1,子类不能定义和父类同名的变量,但是可以继承父类的变量 2,OC类支持单一继承,不支持多继承。 3,OC支持多层继承

CQYCCCCC的博客 511

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

黑马程序员——oc之继承

-------android培训、java培训、iOS培训、.Net培训、期待与您交流! ---------- 一、基本用法   1.设计两个类Bird、Dog   1 // Bird的声明   2 @interface Bird : NSObject   3 {   4 @public   5 int weight;   6 }   7 - (void)eat;

lucky2468的博客 386

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

黑马程序员_OC继承与组合

在OC中,当两个或多个类拥有相同

suiyuan78223的专栏 721

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

黑马程序员——OC—OC中面向的对象特征之继承和派生

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——— OC中面向的对象特征之继承和派生 1、OC中的继承与派生 先看下图: 上图是一个抽象描述的特性继承表     交通工具是一个基类(也称做父类),通常情况下所有交通工具所共同具备的特性是速度与额定载人的数量,但按照生活常规,我们来继续给交通工具来细分类的时候,我们会分

liuming_xing_cool的博客 758

黑马程序员-OC的继承

OC面向对象—继承 一、基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量)。  在这里动物是猫类和狗类的父类,黑猫和白猫类是猫类的子类。 继承的好处: (1)抽取出了重复的代码 (2)建立了类和类之间的联系 继承的缺点:

CRUD程序员的博客 375

——黑马程序员——OC中的继承

-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------

yhp1095785221的博客 407

黑马程序员----OC学习之继承

OC继承方法

NT_Xiaocai的博客 523

黑马程序员_OC的继承那点事儿

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------     OC的继承那点事儿:   子类方法和属性的访问过程:如果子类没有,就去访问父类的。父类被继承了还是能照常使用的 父类的静态方法: 画继承结构图,从子类抽取到父类 NSObject的引出:全部OC类的最终父类,包

yzyceo的专栏 620

黑马程序员---oc 封装,继承,多态

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

Q472622179的专栏 854

黑马程序员——OC基础02—封装、继承、多态

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一、面向对象三大特性之封装1)封装的作用之前用的@public的成员可以任意被赋值,是因为隐藏的数据底层复杂的东西暴露出一个借口,不封装的话就会失去对属性的管理权,具有很大的风险。 这时候我们需要set和get方法来管理成员的访问,过滤掉不合理的东西。2)封装的原理:实例变量智能呗当前类的对象进行访问。 set

Peide04271915的博客 532

黑马程序员——OC学习——封装、继承、多态

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1. 封装 在OC中,使用@interface和@implementation来处理类,@interface像暴露在外面的钟表表面,像外界提供展示及接口,@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来。 封装的原理:实例变量默认只能被当前类的对象方法访

Susie_CC的博客 585

黑马程序员—IOS基础之OC—类的三大特性封装、继承、多态

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

Dnorsunshine的博客 702

黑马程序员-OC学习日记四之继承的小结

OC面向对象—继承的小结一、基本概念 就如同字面上的理解一样,继承可以使一个子类像子女继承父母的资源一样,继承来自父类的所有方法和属性继承的好处:(1)抽取出了重复的代码(2)建立了类和类之间的联系继承的缺点:耦合性太强二、OC中的继承@interface Person:NSObject//Person继承了NSObject,获得NSObject类的方法;@end@interface Studen

gufengpl的专栏 386
上一篇: 黑马程序员——OC基础---类方法的总结
下一篇: 黑马程序员——OC基础---构造方法
abuzzworld
博客等级 码龄18年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值