A major difference is that, in Java, the only way to make a class implement another interface is by changing its source.<p>In Swift, on the other hand, one can make a class conform to a protocol, even if one does not have access to its source code (<a href="https:&#x2F;&#x2F;www.andrewcbancroft.com&#x2F;2014&#x2F;12&#x2F;02&#x2F;send-a-type-to-obedience-school-using-swift-extensions-for-additional-protocol-conformance" rel="nofollow">https:&#x2F;&#x2F;www.andrewcbancroft.com&#x2F;2014&#x2F;12&#x2F;02&#x2F;send-a-type-to-ob...</a>)