0
0
Swiftprogramming~5 mins

Protocol extensions for shared behavior in Swift - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is a protocol extension in Swift?
A protocol extension adds default implementations of methods or properties to a protocol, so all types conforming to that protocol get shared behavior automatically.
Click to reveal answer
beginner
How do protocol extensions help reduce code duplication?
By providing default method implementations in the protocol extension, multiple types can share the same behavior without writing the same code again.
Click to reveal answer
intermediate
Can a type that conforms to a protocol override a method provided by a protocol extension?
Yes, a conforming type can provide its own implementation to override the default behavior from the protocol extension.
Click to reveal answer
beginner
Example: What will this print?

protocol Greetable {
  func greet()
}

extension Greetable {
  func greet() { print("Hello from extension") }
}

struct Person: Greetable {}

let p = Person()
p.greet()
It prints: Hello from extension Because Person conforms to Greetable but does not implement greet(), so it uses the default from the extension.
Click to reveal answer
intermediate
Why might you use protocol extensions instead of base classes?
Protocol extensions allow shared behavior without forcing inheritance, so types can conform to multiple protocols and still share code, making design more flexible.
Click to reveal answer
What does a protocol extension in Swift provide?
ADefault implementations for protocol methods
BInheritance from a base class
CA way to create stored properties
DAutomatic memory management
If a type conforms to a protocol with an extension method, but also implements that method itself, which version is called?
AIt causes a compile error
BThe protocol extension version
CBoth versions are called
DThe type's own implementation
Can protocol extensions add stored properties to protocols?
AYes, always
BNo, only computed properties or methods
COnly if marked @objc
DOnly in classes
Why are protocol extensions useful for shared behavior?
AThey enforce strict type checking
BThey improve runtime speed
CThey allow code reuse without inheritance
DThey replace all classes
Which Swift feature lets you add default method implementations to protocols?
AProtocol extensions
BGenerics
CClosures
DOptionals
Explain how protocol extensions provide shared behavior in Swift.
Think about how you can write one method once and have many types use it.
You got /4 concepts.
    Describe the difference between protocol extensions and class inheritance for sharing code.
    Consider how protocols let you share behavior without forcing a class hierarchy.
    You got /4 concepts.