title: Why protocol is better than class in swift?
body: <p>By watching the video tutorial provided by Apple, it seems that swift is protocol-oriented programming langue and apple encourage programmers to use protocol than class.
  But from my personal view, I see no apparent advantages for protocol.  class can conform to protocol, but they can also inherit from superclass. We can add extension to protocol, but we can also add extension to class. We can implement functions in classes which conforms to protocol, but we can also override func in subclass.
  I am still confused that why we need to use protocol rather than class. And when we should use protocol instead of class ?</p>