Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protocol P {
- func foo()
- }
- extension P {
- func foo() { print("P") }
- }
- class A: P {}
- class B: A {
- func foo() { print("B") } // <- Does not work.
- }
- class C: P {
- func foo() { print("C") }
- }
- class D: C {
- override func foo() { print("D") }
- }
- let instances: [P] = [A(), B(), C(), D()]
- instances.forEach { $0.foo() }
- /* Actual output:
- P
- P
- C
- D
- */
- /* Desired output:
- P
- B
- C
- D
- */
Add Comment
Please, Sign In to add comment