Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpIhPH 38 of 113 menu
◀ ▶

Имя с подчеркиванием у наследника в Dart

Имя, начинающееся с _, в Dart приватно для библиотеки (файла), а не для одного класса. Поле _title у Post видно другим классам в том же файле, в том числе потомку:

class Post { String _title = ""; void setTitle(String title) { _title = title; } String getTitle() { return _title; } } class Note extends Post { void prefixTitle(String prefix) { _title = prefix + _title; } }

Потомок в том же файле может читать и менять _title напрямую. Если класс Note перенести в другой файл той же программы, обращение к _title родителя не скомпилируется - для другого файла это чужое имя библиотеки.

Тот же принцип действует для методов с ведущим подчеркиванием: потомок в одном файле может вызвать _validate родителя, из другого файла - нет:

class Post { bool _validate(String value) { return value.isNotEmpty; } } class Note extends Post { bool check(String value) { return _validate(value); } }

Перенесите класс Note в отдельный файл и попробуйте обратиться к _title из метода потомка.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить