Использование final для подкласса в swift - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть два класса A, B. B является подклассом A. Могу ли я использовать final для класса B. Я хочу уменьшить динамическую диспетчеризацию. Что если в классе b есть метод, переопределяющий метод класса A. Как будет работать метод диспетчеризации?

class A {
     ///
}

final class B : Class A {

}

1 Ответ

0 голосов
/ 17 сентября 2018

Да, вы можете

Swift дает нам окончательное ключевое слово именно для этой цели: когда вы объявляете класс как конечный, никакой другой класс не может наследовать его.Это означает, что они не могут переопределить ваши методы для изменения вашего поведения - им нужно использовать ваш класс так, как он был написан.

Последнее ключевое слово - ограничение на класс, метод или свойство, которое указываетчто декларация не может быть отменена.Это позволяет компилятору безопасно исключать динамическое косвенное перенаправление.

Таким образом, вы можете использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...