您现在的位置是:首页 > 正文

ios swift 继承_Swift中的继承

2024-04-01 01:05:36阅读 3

ios swift 继承

什么是继承? (What is Inheritance?)

Inheritance allows a class to have the same behavior as of another class and extend that behavior to provide specific needs.

继承允许一个类具有与另一个类相同的行为,并扩展该行为以提供特定的需求。

为什么要继承? (Why Inheritance?)

One of the key benefits of inheritance is to minimize the amount of duplicate code in an application by sharing common code amongst several subclasses.

继承的主要好处之一是,通过在多个子类之间共享通用代码,可以最大程度地减少应用程序中重复代码的数量。

When one class inherits from another, the inheriting class is known as a subclass, and the class it inherits from is known as its base class.

当一个类从另一个类继承时,继承的类称为子类 ,而其继承的类称为其基类

Inheritance is a fundamental behavior that differentiates classes from other types in Swift.

继承是一种基本行为,可将Swift中的类与其他类型区分开。

Topics Covered are,

涵盖的主题是

  1. Base Class

    基类
  2. Sub Class

    子类
  3. Overriding

    覆写
  4. Preventing Overriding

    防止覆写

1.基础类 (1. Base Class)

Any class that does not inherit from another class is known as a base class.

任何不从另一个类继承的类都称为基类

句法 (Syntax)

class ClassName {
//Declaration of properties and methods
}

(Example)

2.子类 (2. Sub Class)

The subclass inherits characteristics(i.e. Methods and Properties) from the existing class. New characteristics can also be added to the subclass.

子类从现有类继承特征(即方法和属性)。 新特性也可以添加到子类中。

句法 (Syntax)

class SubClassName: BaseClassName {
//Sub Class Declaration
}

(Example)

An important concept in the subclass is overriding. Let's get into that.

子类中的一个重要概念是重载。 让我们开始吧。

3.覆写 (3. Overriding)

To provide an own custom implementation in a subclass overriding is used.

为了在子类中提供自己的自定义实现,将使用重写。

Overriding is something changing or adding the functionality which is derived from the base class without changing its signature(without changing the method name and the parameter list).

重写是指更改或添加从基类派生的功能,而无需更改其签名(无需更改方法名称和参数列表)。

句法 (Syntax)

class SubClassName: BaseClassName {
override var or func
}

(Example)

  • In the above example, the Manager class is inherited from the Employee class.

    在上面的示例中,Manager类是从Employee类继承的。
  • The manager class adds an extra variable called the bonus.

    管理器类添加了一个额外的变量,称为bonus

  • Then the base class initializer of Employee is called from the Manager class.

    然后,从Manager类调用Employee的基类初始化程序。
  • Then base class method printDetails is called from the Manager class printDetails method.

    然后,从Manager类的printDetails方法调用基类方法printDetails。
  • Finally, Also the base class variables firstName and lastName are called from the method.

    最后,还从该方法调用基类变量firstName和lastName。

4.防止超越 (4. Preventing Override)

A method or property can be prevented from being overridden by marking it as final.

通过将方法或属性标记为final可以防止方法或属性被覆盖。

Any attempt to override a final method or a property in subclass results in a compile-time error.

任何尝试覆盖子类中的final方法或属性的尝试都会导致编译时错误

Not only the method or property even a class can be marked as final.

不仅方法或属性,甚至类也可以标记为final。

Any attempt to inherit the final class results in a compile-time error.

继承最终类的任何尝试都将导致编译时错误。

防止财产超支 (Preventing Property Override)

This prevents the property from being overridden.

这样可以防止该属性被覆盖。

句法 (Syntax)

class ClassName {
final var: Type
}

(Example)

防止方法覆盖 (Preventing Method Override)

This prevents the method from being overridden

这样可以防止方法被覆盖

句法 (Syntax)

class ClassName {
final func functionName() {
//Function Definition
}

(Example)

防止类覆盖 (Preventing Class Override)

For methods and properties, the final keyword doesn't allow them to be overridden. In the case of a class it prevents it from being extended.

对于方法和属性, final关键字不允许它们被覆盖。 对于类,它阻止了它的扩展

句法 (Syntax)

final class ClassName {
//Class Declaration
}

(Example)

So far concepts on the base class, subclass, overriding, and preventing overriding are covered.

到目前为止,已经涵盖了有关基类,子类,覆盖和防止覆盖的概念。

翻译自: https://medium.com/ivymobility-developers/inheritance-in-swift-5656886d41b7

ios swift 继承

网站文章

  • 基于顺序表实现栈的基本操作

    基于顺序表实现栈的基本操作

    栈:什么是栈?又该怎么理解呢?栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。栈就是一个桶,后放进去的先拿出来,它下面本来有的东西要等它出来之后才能出来(先进后出)栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域,该区域具有FIFO的特性,在编

    2024-04-01 01:05:31
  • NTP配置时间同步

    Oracle RAC两个节点,配置NTP使得两个节点时间同步 1)节点1和节点2都启动NTP服务,节点2(客户端)向节点1(服务器端)同步 如果测试用,可修改节点2的时间不同于节点1的时间,...

    2024-04-01 01:05:25
  • linux主机加入组播组,linux下不同主机间实现组播(练习代码)

    在写聊天室程序时,遇到一个组播问题,不能在不同主机上进行发送接收消息。。。深究发现,是本人对sendto与recvfrom的理解太浅薄。以下代码发送端与接收端可在同一主机,也可在不同主机上运行。代码直...

    2024-04-01 01:05:18
  • 正则表达式总结

    第一点:--------------有关正则前沿介绍 正则表达式是用来进行文本处理的技术,是语言无关的,在几乎所有语言中都有实现。javascript中还会用到。一个正则表达式就是由普通字符以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。就像通配符“*.jpg”、“%ab%”,它...

    2024-04-01 01:04:52
  • 计算机系统结构李学干课后习题答案,计算机系统结构习题答案(李学干).doc

    计算机系统结构习题解答第一章习题一1.2一台经解释实现的计算机,可以按照功能划分成4级。每一级为了执行一条指令需要下一级的N条指令解释。若执行第1级的一条指令需K纳秒时间,那么执行第2、3、4级的一条...

    2024-04-01 01:04:45
  • 使用 JavaScript 将相对路径转换为绝对路径

    转自:http://baifa.me/2010/01/convert-to-absolute-path.html有时为了唯一标识网址或其它开发需要,我们需要将相对的网址转换为绝对的网址。当然前人实现方式已经不少,但或多或少的存在缺点或兼容问题。下面我将总结已有实现并给出相对完美的实现。常规实现:地址转换因该实现方式千变万化,故略去代码,但在开发时需考虑 base 标签的会带

    2024-04-01 01:04:38
  • python 根据中文表头标题抓取动态(表格)文档数据

    python 根据中文表头标题抓取动态(表格)文档数据

    思路如图左侧表头标题,要获得右侧数据。网页数据提取成汉字,表格数据间会有空格,用split()分隔成list。用index()查找某个汉字表头位置,输出list下一个位置既是要得到值 text2 ='网页纯文本,爬虫数据自己转换' # 字符串分割成列表,Python 分割字符串使用 变量.split("分割标示符号"[分割次数]),分割次数表示分割最大次数,为空则分割所有。...

    2024-04-01 01:04:12
  • 云计算和外包数据安全分析及建议

    本文讲的是云计算和外包数据安全分析及建议,【IT168 资讯】很多企业,要么已经配置了云计算,要么即将配置云计算。云计算是提高灵活性、减少成本的最新技术。通过提供捆绑、可升级的软件、基础设施、数据存储及通信解决方案,云计算供应商使公司节约了资金、避免了高成本IT承诺、获得了基于所需的有效系统规模,并且可迅速配置最新服务。  一。漫步云端前需要考虑的问题 ...

    2024-04-01 01:04:04
  • 二维数组按数字大小选取前top k个数字

    题目描述 二维数组,每行是降序的,且每行的长度不固定,综合选取去重后的前top-k大的数字。 输入: [ [10,9,7,5,2] [8,6,3] [10,9,8,5] ] 选取前top-5大的数字 ...

    2024-04-01 01:03:59
  • 方向导数与梯度

    方向导数与梯度

    导数一元函数的导数,为函数曲线在某一点的切线斜率,求解释可依据求极限思想偏导数多元函数,例如二元函数,函数为一个空间曲面,因此计算某点关于一元变量导数时,必须假定另一元变量是常数,由于不是完全导数,所...

    2024-04-01 01:03:34