title: Is there a difference between Swift 2.0 protocol extensions and Java/C# abstract classes?
body: <p>With the addition of protocol extensions in Swift 2.0, it seems like protocols have basically become Java/C# abstract classes. The only difference that I can see is that abstract classes limit to single inheritance, whereas a Swift type can conform to any number of protocols.</p>
  
  <p>Is this a correct understanding of protocols in Swift 2.0, or are there other differences?</p>