Swift基础知识:21.Swift继承

news/2024/7/20 21:24:39 标签: swift, 开发语言, ios

在 Swift 中,类可以通过继承从其他类获得属性和方法。被继承的类称为父类(或超类),继承的类称为子类。子类可以继承父类的特性,并且可以添加自己的新特性。继承允许类层次结构中的代码重用和多态性。

定义一个基类(父类)

在 Swift 中,可以通过定义一个类来作为其他类的父类。父类通常包含一些通用的属性和方法,这些属性和方法可以被子类继承和重写。

示例:

swift">class Vehicle {
    var currentSpeed = 0.0
    var description: String {
        return "traveling at \(currentSpeed) miles per hour"
    }
    func makeNoise() {
        // 空实现,子类可以重写这个方法
    }
}

定义子类

在 Swift 中,可以通过 class 关键字来定义一个子类,并通过 super 关键字来访问父类的属性和方法。子类可以重写父类的属性和方法,也可以添加新的属性和方法。

示例:

swift">class Bicycle: Vehicle {
    var hasBasket = false
}

class Train: Vehicle {
    override func makeNoise() {
        print("Choo Choo")
    }
}

创建子类实例

可以使用子类来创建对象实例,子类实例会继承父类的属性和方法,同时也可以访问子类自己的属性和方法。

示例:

swift">let bicycle = Bicycle()
bicycle.currentSpeed = 15.0
print(bicycle.description)  // 输出:traveling at 15.0 miles per hour

let train = Train()
train.makeNoise()  // 输出:Choo Choo

防止重写

在 Swift 中,可以使用 final 关键字来防止类、属性或方法被继承或重写。

示例:

swift">final class FinalClass {
    // 这个类不能被继承
}

class AnotherClass {
    final func cannotBeOverridden() {
        // 这个方法不能被重写
    }
}

继承是面向对象编程中的重要概念,它允许类之间共享和扩展代码。在 Swift 中,继承是一种强大的机制,可以帮助我们构建具有层次结构的类型,并实现代码重用和多态性。


http://www.niftyadmin.cn/n/5386405.html

相关文章

正交匹配追踪(Orthogonal Matching Pursuit, OMP)的MATLAB实现

压缩感知(Compressed Sensing, CS)是一种利用稀疏信号的先验知识,用远少于奈奎斯特采样定理要求的样本数目恢复整个信号的技术。正交匹配追踪(Orthogonal Matching Pursuit, OMP)是一种常见的贪婪算法(Gree…

兴趣使然: 计算机专业形成职业规划的四部电影

计算机专业必看的几部电影 随着科技的迅速发展,计算机专业的学生和从业者们常常需要寻找灵感和启发,来更好地理解技术的本质和未来的发展方向。而电影作为一种视听娱乐形式,往往能够以独特的方式展现科技的魅力和影响力。以下几部电影被认为…

指针的进阶(C语言)(下)

目录 4、数组参数、指针参数传参 4.1一维数组传参 4.2二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5、函数指针 6、函数指针数组 7、指向函数指针数组的指针 8、回调函数 总结 续上篇 4、数组参数、指针参数传参 在写代码的时候难免把【数组】或者【指针】传给…

深度解析:用 Python 爬虫逆向破解 dappradar 的请求头加密 X-Api-Sk

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你详细地逆向分析 dappradar 网站请求头加密字段 X-Api-SK 的构造逻…

实战打靶集锦-025-HackInOS

文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查5. 提权5.1 枚举系统信息5.2 探索一下passwd5.3 枚举可执行文件5.4 查看capabilities位5.5 目录探索5.6 枚举定时任务5.7 Linpeas提权 靶机地址:https://download.vulnhub.com/hackinos/HackInOS.ova 1. 主机…

GIT中对子仓库的使用方法介绍

git 子仓库 主仓库中添加子仓库 git submodule add <url> <path>更新子代码代码 git submodule update --init克隆含有子仓库的仓库 git clone --recurse-submodules <url>主仓库中删除子仓库 1、进入包含子仓库的父仓库的根目录 2、使用以下命令将子仓…

外汇天眼:外汇7种主要货币对有何特性?

外汇市场是是全球最大的金融投资市场&#xff0c;也是唯一没有庄家控盘的市场&#xff0c;所有新闻消息公开透明&#xff0c;也是全球唯一干净的投资市场。 在外汇市场中各主要货币对都有自己的特性&#xff0c;我们必须充分了解其特性&#xff0c;才能赚到丰厚的利润。 一、美…

本机防攻击简介

定义 在网络中&#xff0c;存在着大量针对CPU&#xff08;Central Processing Unit&#xff09;的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文&#xff0c;从而引发其他业务的中断甚至系统的中断&#xff1b;大量正常…