当前位置: 首页 > 面试题库 >

为什么我不能像库类一样快速继承多个类

易祖鹤
2023-03-14
问题内容

我尝试通过继承两个类来创建myPet,但是出现错误,例如:

import UIKit
class SecondViewController: UIViewController, UITextFieldDelegate {
    // No Error
}

然后定义了以下类,然后创建新的类myPets,我想同时继承Dog和Substance。但是错误:从类“狗”和“物质”的多重继承

class Dog:Animal {
    func sound()->String {
        return "Hong Hong"
    }
}

class Substance {
    func livingCompound()->String {
        return "Consist of bio-molecule"
    }
}

class myPets:Dog, Substance {
    func itsAddress()->String {
        // Error:Multiple inheritance from classes 'Dog' and 'Substance'
    }
}

问题答案:

Swift不支持多重继承,遵循ObjectiveC。这不是从两个类继承:

class SecondViewController: UIViewController, UITextFieldDelegate

它是从一类继承UIViewController而采用的UITextFieldDelegate协议。在https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html上阅读有关协议的信息。



 类似资料:
  • 问题内容: 为什么以下代码不起作用(Python 2.5.2)? 我想创建一个类似的类,但具有不同的功能。显然我的函数永远不会被调用。而是调用原始文件并失败,因为它需要3个参数,而我传入了一个。 这里发生了什么?这是一个线索吗? 谢谢! 问题答案: 关于其他几个答案,这与用C本身实现的日期无关。该方法不做任何事情,因为它们是 不可变的 对象,因此构造函数()应该完成所有工作。您会看到相同的行为将i

  • 问题内容: 如果我使用以下代码,则会向我显示错误“类型’HttpConnection’不符合协议’NSObjectProtocol’” 如果我将HttpConnection子类化为NSObject,则可以正常工作。所以我的问题是,当我需要迅速采用NSURLConnectionDataDelegate协议时,为什么需要从NSObject继承该类? 问题答案: 本身继承自。 这意味着除了实现,和中的所

  • “为什么多重继承在java中是不可能的?”与“为什么java中不支持多重继承”这个问题有什么不同吗?或者两者是相互关联的。我知道这已经得到了回答,只是在寻找一个不同的地方,如果有的话,而不是为什么的答案。

  • 问题内容: 我想在HTML文档中设置文本的字体样式和字体大小。 我曾经学习过,每个HTML元素都继承其父元素的样式属性。就我而言,所有的子元素都应具有size 。 但是,为什么这不是工作,,,等? 问题答案: ,,--默认情况下,它们不会继承,但是您可以将其设置为使用CSS继承

  • 我们知道在面向对象编程的时候,比如Bird既有叫的功能,又有飞的功能,可以通过继承Animal和实现飞的接口的功能实现: 问题1: 为什么很多不使用多继承?而是选择继承类+实现接口? 这个有什么好处? 如果还有其他类的功能比如: 问题2: Bird想要继承吃素的功能,请问这个如何进行实现呢?就不能进行继承了对吗?

  • 你能在Swift中继承枚举吗?关于枚举继承,应该知道哪些规则? 以下测试代码: 产生