Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
7 / 7 / 3
Регистрация: 16.07.2012
Сообщений: 56

Наследование

25.05.2013, 17:05. Показов 775. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            B b = new B();
            b.f();
            Console.ReadLine();
        }
    }
     class A 
    {
        public void f() 
        {
            Console.WriteLine("A");
        }
    }
    class B:A 
    {
        public void f()
        {
            Console.WriteLine("B");
        } 
    }
}
Почему этот код работает разве компилятор не должен просить чтобы я употребил словечки new или override?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2013, 17:05
Ответы с готовыми решениями:

Наследование интерфейса и наследование реализации
Начал читать книгу GoF и сразу же в предисловии попал в тупик. Чем отличается наследование интерфейса от наследования реализации? Что такое...

Наследование С# , наследование полей
В классе есть приватное ПОЛЕ . Мне нужно использовать его в классе потомке . Можно это не сделать не делая поле публичным .

Наследование
Привет формчане, помогите пожалуйста. Вообще ничего не понимаю в наследовании. Спасибо Задание 1 Определить иерархию классов (в...

5
 Аватар для CoreX
39 / 39 / 9
Регистрация: 08.05.2011
Сообщений: 176
25.05.2013, 17:11
А почему собственно он не должен работать?
new вообще не понимаю куда употреблять, а переопределения у вас тут быть не может, так как нету виртуального метода в родительском классе.
0
7 / 7 / 3
Регистрация: 16.07.2012
Сообщений: 56
25.05.2013, 17:16  [ТС]
Но как живут 2 одинаковых метода вместе?
0
 Аватар для CoreX
39 / 39 / 9
Регистрация: 08.05.2011
Сообщений: 176
25.05.2013, 17:22
Они же в разных классах... Если бы вы пытались создать в одном классе два метода f, тогда - конечно компилятор выдаст ошибку. Вы же можете создать метод например WriteLine в своем классе B, хотя он и определен в классе Console
0
7 / 7 / 3
Регистрация: 16.07.2012
Сообщений: 56
25.05.2013, 17:26  [ТС]
Классы разные но при наследовании все члены А доступны в В, почему нет конфликта?
0
 Аватар для akafeanor
60 / 59 / 15
Регистрация: 04.05.2010
Сообщений: 161
25.05.2013, 18:25
У вас происходит неявное скрытие. Если вы хотите скрыть явно, то обязательно нужно использовать ключевое слово new
C#
1
2
3
4
5
6
7
    class B : A
    {
        public new void f()
        {
            Console.WriteLine("B");
        }
    }
Если вы хотите переопределить в классе B метод f из класса А, то его нужно объявить абстрактным -
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
   
    class A
    {
        abstract public void f();
 
    }
    class B : A
    {
        public override void f()
        {
            Console.WriteLine("B");
        }
    }
или виртуальным -
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    class A
    {
        virtual public void f()
        {
            Console.WriteLine("A");
        }
 
    }
    class B : A
    {
        public override void f()
        {
            Console.WriteLine("B");
        }
    }
По поводу ошибки - VS показывает предупреждение о скрытие метода базового класса. Читайте msdn и будем вам счастье.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2013, 18:25
Помогаю со студенческими работами здесь

Наследование
Всем вечер добрый, такой вопрос возник. Почитал,что в шарпах можно наследовать только 1 класс, а может есть какой-то обход данного правила?...

Наследование
Здравствуйте. Дано: public interface ICounterTransformerBaseElements:IDatesElements,ICommonElements { } public interface...

Наследование
Добрвый вечер! Запутался с наследием. Да и вообще ноль пока в C#. Задача стоит в том чтобы найти площадь RightTriangle...

Наследование
Добрый день,уважаемые программисты!.У меня завал по программированию:cry:Я не успеваю сделать все лабы.Если у вас есть возможность...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru