代码之家  ›  专栏  ›  技术社区  ›  Ali Faris

swift中的抽象类和抽象函数[副本]

  •  2
  • Ali Faris  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我来自Java,现在我想在SWIFT中制作抽象类。

    我有这个班 爪哇 我想在 斯威夫特 如果可能的话

    abstract class Fetcher
    {
        private Item[] items;
        public void fetch()
        {
            //SOME CODE
            parse();
            //SOME CODE
        }
    
        public abstract void parse();
    }
    

    所以 有没有一种方法可以迅速达到同样的效果?我不介意使用任何黑客技术,那是最后的希望。

    1 回复  |  直到 6 年前
        1
  •  4
  •   vikingosegundo    6 年前

    为了实现类似的效果,在SWIFT中,我们使用协议(Java接口)。

    protocol Fetcher {
        var items: [Item] { get set }
        func fetch()
        func parse()
    }
    

    你能做的一件事就是给一个班的学生做标记 final

    extension Fetcher {
        func fetch() {
            //SOME CODE
            parse()
            //SOME CODE
        }
    }
    

    例如,使用上述协议:

    class Foo: Fetcher {
        var items = [Item]()
    
        // No need for fetch method, since it's already implemented
    
        func parse() {
           // Do something
        }
    }
    

    fetch