Чем функции-расширения в Kotlin отличаются от наследования с точки зрения модификации класса, доступа к членам, иерархии типов и поведения во время выполнения? — ДейлиПреп