what approach does Apple use in Swift instead of override, how can I write this without using the @objc marker
import Foundation
class A {
    init() {}
}
extension A {
    @objc func foo() {
        print("foo")
    }
}
class B: A {
    override func foo() {
        print("yes2")
    }
}
A().foo()
B().foo()
maybe protocols? but how?
 
     
    