Назад к задачам
СБЕРПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
5
Определение вызываемого метода в иерархии протоколов
Компании, где спрашивали:
Условие задачи
В задаче рассматривается ситуация, когда несколько протоколов наследуют друг друга и каждый из них имеет собственную реализацию метода test() в расширении. Нужно понять, какая именно реализация будет выполнена при вызове метода у экземпляра класса, который одновременно соответствует нескольким из этих протоколов.
protocol A2 {
func test()
}
protocol B2: A2 {
func test()
}
protocol C2: B2 {
func test()
}
extension A2 {
func test() {
print("A2")
}
}
extension B2 {
func test() {
print("B2")
}
}
extension C2 {
func test() {
print("C2")
}
}
class TestClass2: A2, C2, B2 {}
TestClass2().test()