相关疑难解决方法(0)

Swift语言中的抽象类

有没有办法在Swift语言中创建一个抽象类,或者这是一个像Objective-C一样的限制?我想创建一个类似于Java定义为抽象类的抽象类.

inheritance abstract-class subclass swift

136
推荐指数
6
解决办法
8万
查看次数

Swift - 类方法,必须由子类重写

是否有一种在Swift中制作"纯虚函数"的标准方法,即.一个必须被每个子类覆盖的,如果不是,会导致编译时错误?

abstract swift swift-protocols

82
推荐指数
4
解决办法
4万
查看次数

斯威夫特 - 混合抽象和具体方法

Swift没有抽象的类和方法.相反,它提供协议.

当你的课程完全抽象或完全具体时,这很好.

但是,实现具有具体方法的抽象类的最佳'Swift'方法是什么?

伪代码示例:

class Animal {
  abstract makeSound()
  abstract eyeCount()
}

class Mammal : Animal {
  override eyeCount { return 2 } // Let's assume all mammals have hard-coded 2 eyes...

class Cat : Mammal {
  override makeSound { print "Meow!" }
}

class Dog : Mammal {
  override makeSound { print "Woof!" }
}
Run Code Online (Sandbox Code Playgroud)

在哺乳动物中,我确实想要实施具体的方法,eyeCount()因为所有哺乳动物都有2个硬编码的眼睛(据说是),我不想在狗和猫中重新实施它.然而,makeSound()只应该为狗和猫实施,因为哺乳动物有不同的声音.

你会如何在Swift中实现它?谢谢!

oop abstract-class ios swift

7
推荐指数
2
解决办法
2395
查看次数

Swift协议允许在基类中存在时未实现的函数

假设下面的操场:

protocol MyProtocol
{
    func MyFunc()
}

class MyBase : MyProtocol
{
    func MyFunc()
    {

    }
}

class MyClass : MyBase, MyProtocol
{

}
Run Code Online (Sandbox Code Playgroud)

我期待这不能编译,并唠叨不实现我的协议.但与其他语言不同,如果协议符合基类,Swift似乎认为它很好.

如何让MyClass强制覆盖我的方法?

我正在使用Swift 1.1,tia.

swift

0
推荐指数
1
解决办法
190
查看次数