[swift-evolution] [swift-evolution-announce] [Review] SE-0026 Abstract classes and methods
tseitz42 at icloud.com
Mon Feb 29 11:14:15 CST 2016
> Am 27.02.2016 um 00:20 schrieb Patrick R. Gili via swift-evolution <swift-evolution at swift.org>:
> Some concepts have proven problematic and introduced more problems over the long-term than they solve. Multiple inheritance is a good example of one of these concepts. In my opinion, abstract declarations represents another.
Actually multiple inheritance is not a good example as it
- never was implemented right except in Eiffel
- interfaces/protocols are widely presumed not to have the problems of multiple inheritance but in fact they do have just the same problems when two interfaces/protocols are implemented/conformed to, which have the same member but with different semantics (the diamond problem related to state has the exact same solution as the problem just mentioned, i.e. renaming)
- multiple inheritance is popping up in more and more languages, i.e. in Java with default implementations of interfaces, in Swift with protocol extensions, etc.
More information about the swift-evolution