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?
✗ Incorrect
Protocol extensions provide default implementations for methods or properties declared in the protocol.
If a type conforms to a protocol with an extension method, but also implements that method itself, which version is called?
✗ Incorrect
The type's own implementation overrides the default provided by the protocol extension.
Can protocol extensions add stored properties to protocols?
✗ Incorrect
Protocol extensions cannot add stored properties, only computed properties or methods.
Why are protocol extensions useful for shared behavior?
✗ Incorrect
Protocol extensions let you share code across types without using class inheritance.
Which Swift feature lets you add default method implementations to protocols?
✗ Incorrect
Protocol extensions are the feature that allows default implementations in protocols.
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.