Tag: модификаторы доступа

Изменение режима доступа к функциям в производном classе

Рассмотрим следующий fragment: struct Base { virtual ~Base() {} virtual void Foo() const = 0; // Public }; class Child : public Base { virtual void Foo() const {} // Private }; int main() { Child child; child.Foo(); // Won’t work. Foo is private in this context. static_cast (child).Foo(); // Okay. Foo is public in […]

Почему мы не можем изменять модификатор доступа при переопределении методов в C #?

В C # мы не можем изменить модификатор доступа, переопределяя метод из базового classа. например Class Base { **protected** string foo() { return “Base”; } } Class Derived : Base { **public** override string foo() { return “Derived”; } } Это недействительно в C #, это даст ошибку времени компиляции. Я хочу знать причину, почему […]

Почему я не могу защитить интерфейсные элементы?

Каков аргумент против объявления элементов защищенного доступа на интерфейсах? Это, например, недействительно: public interface IOrange { public OrangePeel Peel { get; } protected OrangePips Seeds { get; } } В этом примере интерфейс IOrange гарантирует, что разработчики, по крайней мере, предоставят экземпляр OrangePips своим наследникам. Если бы разработчик захотел, они могли бы расширить сферу деятельности […]

Почему я не могу получить доступ к C # защищенным членам, кроме этого?

Этот код: abstract class C { protected abstract void F(D d); } class D : C { protected override void F(D d) { } void G(C c) { cF(this); } } Генерирует эту ошибку: Невозможно получить доступ к защищенному члену «CF (D)» через квалификатор типа «C»; квалификатор должен иметь тип «D» (или полученный из него) […]

Как сделать свойство protected и внутренним в C #?

Вот мой сокращенный абстрактный class: abstract class Report { protected internal abstract string[] Headers { get; protected set; } } Вот производный class: class OnlineStatusReport : Report { static string[] headers = new string[] { “Time”, “Message” } protected internal override string[] Headers { get { return headers; } protected set { headers = value; […]

Практическое использование для «внутреннего» ключевого слова в C #

Не могли бы вы объяснить, какие практические применения есть для internal ключевого слова в C #? Я знаю, что internal модификатор ограничивает доступ к текущей сборке, но когда мне это нужно?

В чем разница между Dim, Global, Public и Private в качестве модификаторов модульного поля?

В VB6 / VBA вы можете объявлять переменные уровня модуля вне определенного метода Sub или Function . Я использовал Private и Public перед внутренними модулями и понимаю их так: Public – видимый для всего кода внутри модуля и всего кода вне модуля, что делает его глобальным. Private – видимый только для кода внутри модуля. Я […]

Что такое модификатор доступа по умолчанию в Java?

Что такое модификатор доступа по умолчанию для метода или переменной экземпляра, если я не укажу его явно? Например: package flight.booking; public class FlightLog { private SpecificFlight flight; FlightLog(SpecificFlight flight) { this.flight = flight; } } Модификатор доступа этого конструктора защищен или упакован? Могут ли другие classы в одном пакете, который является flight.booking , называть этот […]

модификаторы доступа к Java и методы переопределения

Почему Java указывает, что спецификатор доступа для переопределяющего метода может предоставить больше, но не менее, доступ, чем переопределенный метод? Например, метод защищенного экземпляра в суперclassе может быть общедоступным, но не закрытым, в подclassе.

В чем разница между «защищенными» и «защищенными внутренними»?

Может кто-то, пожалуйста, уточните мне разницу между защищенными и защищенными внутренними модификаторами в C #? Похоже, они ведут себя одинаково.

Давайте будем гением компьютера.