powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запрет переопределения метода в классе-наследнике
3 сообщений из 3, страница 1 из 1
Запрет переопределения метода в классе-наследнике
    #39109150
Фотография pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class Class1
    {
        public void a()
        {
            MessageBox.Show("a");
        }

        public virtual void b() 
        {
            MessageBox.Show("b");
        }
    }




Наследую класс :

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class B : Class1
    {
        public override void a()
        {
            MessageBox.Show("aa");
        }

        public override void b()
        {
            MessageBox.Show("bb");
        }
    }



Все хорошо. Метод а переопределить не могу. НО:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class B : Class1
    {
        public void a()
        {
            MessageBox.Show("aa");
        }

        public override void b()
        {
            MessageBox.Show("bb");
        }
    }



Скрыть его могу великолепно. И будет отрабатывать реализация метода а из класса-наследника.

Как ВООБЩЕ запретить реализацию определенных методов в классе наследнике?
...
Рейтинг: 0 / 0
Запрет переопределения метода в классе-наследнике
    #39109187
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя. Но и не надо. Родительский класс будет своим методом пользоваться. На него это перекрытие никак не повлияет.
Добавь
Код: c#
1.
2.
3.
4.
5.
6.
7.
    public class Class1 {
...
        public void c() {
            a();
            b();
        }
    }


и запусти
Код: c#
1.
2.
            var x = new B();
            x.c();
...
Рейтинг: 0 / 0
Запрет переопределения метода в классе-наследнике
    #39109194
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно только переопределенный виртуальный запретить
Код: c#
1.
2.
3.
4.
public class B : Class1
    {        public override sealed void b() {
            Console.WriteLine("bb");
        }
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запрет переопределения метода в классе-наследнике
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]