Какое из свойств использует виртуальные или перегружаемые элементы

Библиотека среды программирования обычно содержит:

  • справочную документацию
  • (Правильный ответ) многократно используемые элементы программ
  • описания элементов среды программирования
  • книги в электронном виде

Через какой пункт главного меню интегрированной среды выполняется сохранение проекта?

  • Build
  • (Правильный ответ) File
  • Tools
  • Edit
  • Project

Инкапсуляция это:

  • объединение данных и функций программы
  • использование объекта через его интерфейс
  • объединение всех данных программы в один объект
  • (Правильный ответ) сокрытие информации

Какое свойство ООП позволяет единообразно обращаться с разными объектами одной иерархии?

  • абстрагирование
  • (Правильный ответ) полиморфизм
  • инкапсуляция
  • наследование

Выберите функции среды программирования

  • удаление файлов
  • дефрагментация диска
  • (Правильный ответ) отладка программ

Через какой пункт главного меню интегрированной среды можно подключить к проекту новые элементы?

  • (Правильный ответ) Project
  • Tools
  • Build
  • Edit

В состав среды программирования обычно входит:

а. Текстовый редакторб. Трансляторв. Отладчикг. Драйвер принтерад. Антивирус

  • (Правильный ответ) только а, б и в
  • только а, б и д
  • только б и в
  • все перечисленное

Внутреннее представление в компьютере одного и того же числа, представленного в целой и вещественной форме:

  • (Правильный ответ) различно
  • одинаково

Тип константы определяется;

  • по ее категории
  • по ее описанию
  • у констант нет типа
  • (Правильный ответ) по ее внешнему виду

Выберите все допустимые в C# константы.

  • (Правильный ответ) -1e-1D
  • #0.7
  • 7.2.e+3
  • ‘\Ю’
  • (Правильный ответ) «a\a»

Элементарные конструкции (лексемы) языка C# включают в себя:

  • (Правильный ответ) идентификаторы
  • выражения
  • (Правильный ответ) строковые константы
  • операторы

Алфавит языка C# включает в себя:

  • (Правильный ответ) буквы албанского алфавита
  • символы +, -, *, /
  • (Правильный ответ) управляющие cимволы
  • (Правильный ответ) символы <, ?, ;

Выберите все допустимые в C# константы.

  • (Правильный ответ) ‘\’
  • 0xFFG0
  • (Правильный ответ) ‘b’
  • (Правильный ответ) 7.2e3
  • (Правильный ответ) 0.008E-123

Элементарные конструкции (лексемы) языка C# включают в себя:

  • операторы присваивания
  • (Правильный ответ) вещественные константы
  • (Правильный ответ) ключевые слова
  • комментарии

Выберите все допустимые в C# константы.

  • (Правильный ответ) ‘uA818’
  • 5,65
  • 0x$1
  • (Правильный ответ) 36
  • (Правильный ответ) «x=xFfn»

Элементарные конструкции (лексемы) языка C# включают в себя:

  • выражения
  • двоичные числа
  • (Правильный ответ) шестнадцатеричные числа
  • (Правильный ответ) десятичные числа с фиксированной точкой

Число 256 можно хранить в переменной типа

  • bool
  • (Правильный ответ) short
  • (Правильный ответ) float
  • byte
  • (Правильный ответ) ushort

Алфавит языка C# включает в себя:

  • (Правильный ответ) символ подчеркивания
  • (Правильный ответ) цифры от 0 до 9
  • лексемы
  • (Правильный ответ) латинские и русские буквы

Выберите все допустимые в C# константы.

  • (Правильный ответ) 00
  • 1.2_e1
  • (Правильный ответ) 0x010E
  • (Правильный ответ) 259

В переменной типа byte можно хранить число

  • (Правильный ответ) 213
  • 1213
  • (Правильный ответ) 13
  • -13
  • -213

Выберите правильное утверждение:

  • результат операций сравнения целых чисел — целый
  • в одном выражении можно использовать операнды типов double и decimal
  • результат операции сложения величины типа int c величиной типа short имеет тип double
  • (Правильный ответ) в одном выражении можно использовать операнды типов char и long

Чему равно значение выражения (! a && ( b || c)), где a, b и
с — величины типа bool, имеющие значения true, true и false
соответственно?

  • true
  • 1
  • (Правильный ответ) false

Чему равно значение выражения (a || b && a || c), где a, b и
с — величины типа bool, имеющие значения false, true и true соответственно?

  • 1
  • false
  • (Правильный ответ) true

Чему равно значение выражения (a && ! b || c), где a, b и с —
величины типа bool, имеющие значения false, true и true
соответственно?

  • (Правильный ответ) true
  • false
  • 1

Чему равно числовое значение выражения e+Math.Sqrt(e)*10/2*a при
e = 4, a = 3?

  • (Правильный ответ) 34
  • 51
  • 2

Какой тип имеет выражение a — 0.2, где a — переменная типа
int?

  • int
  • extended
  • float
  • (Правильный ответ) double

Чему равно значение выражения (! ( a && b || b && c ) ), где a, b и
с — величины типа bool, имеющие значения false, true и true соответственно?

  • (Правильный ответ) false
  • 1
  • true

Какой тип имеет выражение a == b, где a и b — short?

  • (Правильный ответ) bool
  • float
  • long
  • short

Чему будет равно значение переменной m после выполнения
фрагмента программы?

<pre>{ int k, m = 1; for (k = 3; k >= 1; k—); ++m;}</pre>

  • (Правильный ответ) 2
  • 5
  • 9

Чему будет равно значение переменной m после выполнения
фрагмента программы?

{ int k = 0; m = 0; while (k < 3) ++k; ++m;}

  • (Правильный ответ) 1
  • 22
  • 16

Чему будет равно значение переменной m после выполнения
фрагмента программы?

int k = 3, m = 0;while (k > 0) —k; ++m;

  • 5
  • 11
  • (Правильный ответ) 1

В условном операторе после ключевого слова else может находиться

  • (Правильный ответ) простой или составной оператор
  • (Правильный ответ) вложенный условный оператор
  • любой оператор, кроме оператора перехода
  • произвольное количество операторов

Чему будет равно значение переменной m после выполнения
фрагмента программы?

int k = 3, m = 0;while (k > 0){ —k; ++m;}

  • (Правильный ответ) 3
  • 2
  • 6

Чему будет равно значение переменной a после выполнения фрагмента программы, если b = 0?

a = 1;if (b < 1) a = 2;if (b > 5) a = 3;

  • 12
  • 5
  • 3
  • (Правильный ответ) 2

Что будет выведено на экран в результате выполнения фрагмента программы?

for (int i = 0; i < 3; ++i){ switch (i) { case 0 : Console.Write(«»ZERO «»); break; case 1 : Console.Write(«»ONE «»); break; default: Console.Write(«»DEF «»); return; }}</pre>

  • (Правильный ответ) ZERO ONE DEF
  • ZERO ONE ONE DEF
  • ZERO DEF ONE DEF
  • ZERO DEF DEF
  • ZERO ONE
Читайте также:  Какие свойства у масла тмина

Чему будет равно значение переменной A после выполнения фрагмента программы, если B = 5?

<pre>if (В <= 4)C = 1;else C = 0;A = C;</pre>

  • 23
  • 19
  • (Правильный ответ) 0
  • 41

Какие из следующих утверждений правильные?

  • поля класса могут быть описаны с модификатором external
  • поля класса могут быть описаны с модификатором virtual
  • (Правильный ответ) поля класса могут быть описаны с модификатором static

Какая переменная доступна только в методе, где она объявлена?

  • переменная-член
  • внешняя переменная
  • (Правильный ответ) локальная переменная
  • переменная класса

Заголовок метода имеет вид:
<code> public f(char a, ref float b, float c);</code>
Укажите правильные варианты вызова метода, если переменные в
вызывающей функции описаны так:
char a, c; float b, x; int d;

  • f(a, ref c, b);
  • (Правильный ответ) f(c, ref b, d);
  • f(a, ref b, x);
  • (Правильный ответ) f(a, ref x, c);

Заголовок метода имеет вид:
public f( float a, ref int b, float c);
Укажите правильные варианты вызова метода, если переменные в
вызывающей функции описаны так:
float a, x; int b, c;

  • (Правильный ответ) f(x, ref c, 28);
  • f(a, ref x, c);
  • f(a, ref 28, x);
  • (Правильный ответ) f(a, ref b, c);

Какие спецификаторы можно определить для класса в С#?

  • readonly
  • (Правильный ответ) protected
  • (Правильный ответ) new
  • volatile

Какие спецификаторы можно определить для класса в С#?

  • void
  • (Правильный ответ) public
  • extern
  • object

При обращении к нестатическому методу перед его именем указывается

  • имя сборки
  • имя класса
  • (Правильный ответ) имя экземпляра объекта
  • ничего не указывается

Может ли класс иметь более одного конструктора?

  • не может
  • (Правильный ответ) может

Параметр метода описан как «ref int a».
При вызове метода аргумент, соответствующий параметру, может быть:

  • выражением типа int
  • константой, тип которой имеет неявное преобразование к типу int
  • (Правильный ответ) инициализированной переменной типа int
  • выражением любого целого типа

Параметр метода описан как «ref int a».
При вызове метода аргумент, соответствующий параметру, может быть:

  • выражением любого целого типа
  • выражением любого типа
  • (Правильный ответ) переменной типа int
  • выражением, результат которого имеет неявное преобразование к типу int

Какие из следующих утверждений верные?

  • если программист не задал ни одного конструктора, выдается синтаксическая ошибка
  • (Правильный ответ) конструктор не возвращает значение
  • конструкторы наследуются
  • конструктор возвращает значение типа void

Какие из следующих утверждений правильные?

  • (Правильный ответ) поля класса могут быть описаны с модификатором public
  • (Правильный ответ) поля класса могут быть описаны с модификатором new
  • поля класса могут быть описаны с модификатором casual
  • поля класса могут быть описаны с модификатором abstract

Как реализовать свойство, доступное только для чтения?

  • задать для свойства спецификатор доступа protected
  • задать для свойства спецификатор доступа sealed
  • использовать в объявлении свойства спецификатор доступа readonly
  • (Правильный ответ) реализовать только метод get

Даны описания:

class One { int a; public int b; public static int c; }…One x = new One();

Укажите правильные способы обращения к полям:

  • One.a
  • (Правильный ответ) One.c
  • (one)x.a
  • x.c

Какие спецификаторы можно определить для класса в С#?

  • override
  • (Правильный ответ) static
  • (Правильный ответ) internal
  • (Правильный ответ) private

Что будет выведено на экран в результате выполнения фрагмента программы?

<pre>{char[] a = {‘a’, ‘b’, ‘c’, ‘r’, ‘c’, ‘a’, ‘a’, ‘b’};int k = 0;for (int i = 0; i < 8; i++) if (a[i] > ‘c’) ++k;Console.Write(k);}</pre>

  • <3>
  • (Правильный ответ) <1>
  • <5>

Какое число получится в результате выполнения фрагмента программы?

<pre>{ int[] a = {3, 8, 0, -6, 0, -1, -9, 3}; int i, k; k = a[0]; for (i = 1; i < 8; i++) if (a[i] > k) k = a[i]; Console.WriteLine(k);}</pre>

  • 4
  • (Правильный ответ) 8
  • 6

Какое число получится в результате выполнения фрагмента программы?

<pre>{ int[] a = {3, 8, 0, -6, 0, -1, -9, 3}; int i, k; k = Math.Abs(a[7]); for (i = 0; i< 8; i++) if (Math.Abs(a[i]) > k) k = Math.Abs(a[i]); Console.WriteLine(k);}</pre>

  • (Правильный ответ) 9
  • 15
  • 1

Какая величина вычисляется во фрагменте программы?

<pre>{ int[] a = {3, 8, 0, -6, 0, -1, -9, 3}; int k = 0; for (int i = 7; i>= 0; —i) if (a[i] < 0) k += i; Console.WriteLine(k);}</pre>

  • сумма отрицательных элементов массива
  • количество номеров отрицательных элементов массива
  • (Правильный ответ) сумма номеров отрицательных элементов массива
  • количество отрицательных элементов массива

Что будет выведено на экран в результате выполнения фрагмента программы?

<pre>{char[] a = {‘a’, ‘b’, ‘c’, ‘r’, ‘c’, ‘a’, ‘a’, ‘b’};char k = ‘b’;for (int i = 0; i < 8; i++) if (a[i] < k) k = a[i];Console.Write(k);}</pre>

  • (Правильный ответ) <a>
  • <c>
  • <r>

Какая величина вычисляется во фрагменте программы?

{ int[] a = {3, 8, 0, -6, 0, -1, -9, 3}; int k = 0, j = 4; for (int i = 0; i < 8; i++) if (a[i] > j) k = Math.Abs(a[i]); Console.WriteLine(k);}

  • (Правильный ответ) модуль последнего из элементов массива, больших, чем 4
  • первый из элементов массива, больший, чем 4
  • модуль первого из элементов массива, больших, чем 4
  • первый из элементов массива, больших по модулю, чем 4

Что будет выведено на экран в результате выполнения фрагмента программы?

<pre>{char[] a = {‘a’, ‘b’, ‘c’, ‘r’, ‘c’, ‘a’, ‘a’, ‘b’};char k = ‘a’;for (int i = 0; i < 8; i++) if (a[i] > k) { k = a[i]; Console.Write(k); }}</pre>

  • <bab>
  • (Правильный ответ) <bcr>
  • <bab>
Читайте также:  Какие свойства задают атрибуты файлов как получить к ним доступ

Какая величина вычисляется во фрагменте программы?

{ int[,] a = new int[3,4] {{0,-1,2,3},{-2,-3,2,2},{0,0,0,6}}; int j, k; for (int i = 3; i >= 0; —i) { k = 0; for (j = 0; j < 4; j++) if (a[i,j] > 0) ++k; } Console.WriteLine(k);}

  • количество положительных элементов массива в последнем столбце
  • количество положительных элементов массива в последней строке
  • количество положительных элементов массива в каждой строке
  • количество положительных элементов массива
  • (Правильный ответ) количество положительных элементов массива в первой строке

Выберите правильные утверждения

  • (Правильный ответ) абстрактный класс задает интерфейс для всей иерархии своих потомков
  • абстрактный класс нельзя использовать при задании типа параметров методов
  • класс, с котором есть хотя бы один обычный метод, не является абстрактным
  • допускается создание экземпляра абстрактного класса

Какое из следующих утверждений истинно?

  • перегруженные методы должны отличаться типом параметров
  • (Правильный ответ) перегруженные методы должны отличаться числом и/или типом параметров
  • перегруженные методы должны отличаться типом возвращаемого значения
  • перегруженные методы должны отличаться именами параметров

Если класс, производный от абстрактного, не определяет все его абстрактные методы, он является:

  • закрытым
  • открытым
  • (Правильный ответ) абстрактным
  • виртуальным

Какой из приведенных ниже методов реализует перегрузку унарной операции ++?

  • public operator++ Mhz (Mhz mhz) {…}
  • (Правильный ответ) public static Mhz operator++ (Mhz mhz) {…}
  • public static Mhz ++operator (Mhz mhz) {…}
  • public Mhz operator++ (Mhz mhz) {…}

Какая из следующих операций при перегрузке в классе не может иметь возвращаемое значение булевского типа?

  • !=
  • <
  • ==
  • (Правильный ответ)

Выберите правильные утверждения

  • при перегрузке операции можно задать ее приоритет
  • (Правильный ответ) все операции класса должны определяться как public static
  • при перегрузке бинарных операций второй операнд должен иметь тип класса, для которого определяется операция
  • параметры в операцию передавать запрещается

Выберите правильные утверждения :

  • (Правильный ответ) для стандартных типов данных переопределять операции нельзя
  • параметры в операцию должны передаваться только по ссылке
  • (Правильный ответ) операции класса должны определяться как static
  • операции могут иметь аргументы по умолчанию

Может ли конструктор быть виртуальным?

  • да
  • (Правильный ответ) нет

Что выведет на консоль приведенная программа?

namespace ConsoleApplication1{ class A{ public void WriteMessage(){ Console.Write(«»A.Write «»);} } class B: A{ public new void WriteMessage(){ Console.Write(«»B.Write «»);} } class C: B{ public new void WriteMessage(){ Console.Write(«»C.Write «»);} } class Program{ static void Main(string[] args){ A x = new B(); x.WriteMessage(); x = new C(); x.WriteMessage();}}}

  • A.Write B.Write
  • A.Write C.Write
  • B.Write B.Write
  • (Правильный ответ) A.Write A.Write

Можно ли использовать в теле конструктора виртуальные методы?

  • (Правильный ответ) да
  • нет

Можно ли при переопределении виртуального метода в потомке изменить количество его аргументов?

  • можно в любом случае
  • (Правильный ответ) да, если используется ключевое слово new
  • (Правильный ответ) нет, если используется ключевое слово override

Что выведет на консоль приведенная программа?

namespace ConsoleApplication1{ class A{ public virtual void WriteMessage(){ Console.Write(«»A.Write «»);} } class B: A{ public override void WriteMessage(){ Console.Write(«»B.Write «»);} } class C: B{ public new void WriteMessage(){ Console.Write(«»C.Write «»);} } class Program{ static void Main(string[] args){ A x = new B(); x.WriteMessage(); x = new C(); x.WriteMessage();}}}

  • B.Write C.Write
  • A.Write A.Write
  • (Правильный ответ) B.Write B.Write
  • A.Write B.Write

Что выведет на консоль приведенная программа?

namespace ConsoleApplication1{ class A{ public virtual void WriteMessage(){ Console.Write(«»A.Write «»);} } class B: A{ public override void WriteMessage(){ Console.Write(«»B.Write «»);} } class C: B{ public override void WriteMessage(){ Console.Write(«»C.Write «»);} } class Program{ static void Main(string[] args){ A x = new B(); x.WriteMessage(); x = new C(); x.WriteMessage();}}}

  • B.Write B.Write
  • A.Write C.Write
  • A.Write A.Write
  • (Правильный ответ) B.Write C.Write

Одна таблица виртуальных методов строится для каждого

  • экземпляра объекта
  • (Правильный ответ) класса
  • метода объекта

Методы, которые в разных объектах иерархии выполняют одно и то же по смыслу действие разными способами, следует объявлять как

  • обычные
  • статические
  • (Правильный ответ) виртуальные

Если метод будет выполнять в потомках объекта одни и те же функции, его
следует описать как

  • (Правильный ответ) обычный
  • виртуальный

Стек реализует дисциплину обслуживания

  • LILO
  • FILO
  • (Правильный ответ) LIFO
  • FIFO

Выберите операции, которые не допустимы для очереди:

  • (Правильный ответ) добавление элемента в начало очереди
  • добавление элемента в конец очереди
  • удаление элемента из начала очереди
  • (Правильный ответ) корректировка элементов очереди

Какой из приведенных интерфейсов должен реализовывать тип для поддержки глубокого клонирования объектов?

  • IComparable
  • IMemberwiseClone
  • (Правильный ответ) ICloneable
  • IClone

Какие элементы может содержать интерфейс?

  • деструкторы
  • (Правильный ответ) события
  • поля
  • (Правильный ответ) шаблоны индексаторов

Очередь реализует дисциплину обслуживания

  • LIFO
  • LILO
  • FILO
  • (Правильный ответ) FIFO

Какие элементы может содержать интерфейс?

  • конструкторы
  • (Правильный ответ) абстрактные методы
  • поля
  • деструкторы

Какой из приведенных интерфейсов реализует класс Array для поддержки цикла foreach?

  • IIterator
  • (Правильный ответ) IEnumerator
  • IComparable
  • IForeach

Какие элементы может содержать интерфейс?

  • операции
  • статические методы
  • (Правильный ответ) события
  • поля

Какой из приведенных интерфейсов должен реализовывать класс для обеспечения возможности сортировки объектов по различным критериям?

  • ISorting
  • (Правильный ответ) IComparer
  • IEnumerable
  • ICompare
Читайте также:  Какие бывают свойства звука

Выберите все правильные утверждения:

  • (Правильный ответ) при чтении элемент удаляется из очереди
  • двунаправленный список реализует дисциплину обслуживания LIFO
  • в стеке допустим произвольный доступ к элементу
  • (Правильный ответ) очередь реализует дисциплину обслуживания FIFO

Какие элементы может содержать интерфейс?

  • операции
  • статические методы
  • константы
  • (Правильный ответ) шаблоны свойств

Какие элементы может содержать интерфейс?

  • поля
  • конструкторы
  • (Правильный ответ) шаблоны свойств
  • (Правильный ответ) шаблоны индексаторов

Выберите все правильные утверждения.

  • (Правильный ответ) динамическая структура данных может изменять свои размеры во время выполнения программы
  • (Правильный ответ) абстрактные структуры данных можно реализовывать различными способами
  • стек служит для хранения данных, порядок обращения к которым не важен
  • в линейном списке каждый элемент непосредственно связан со всеми остальными

Какие элементы может содержать интерфейс?

  • операции
  • (Правильный ответ) шаблоны свойств
  • статические методы
  • (Правильный ответ) абстрактные методы

Дан фрагмент кода:

public class Run { public void DoStuff() { // что-то сделать } public void DoAsync(int a) { Thread myThread; (КОД) myThread = new Thread(myStart); // сделать то, что требуется }} }

Источник

Последнее обновление: 03.10.2019

При наследовании нередко возникает необходимость изменить в классе-наследнике функционал метода, который был унаследован
от базового класса. В этом случае класс-наследник может переопределять методы и свойства базового класса.

Те методы и свойства, которые мы хотим сделать доступными для переопределения, в базовом классе помечается модификатором virtual.
Такие методы и свойства называют виртуальными.

А чтобы переопределить метод в классе-наследнике, этот метод определяется с модификатором override.
Переопределенный метод в классе-наследнике должен иметь тот же набор параметров, что и виртуальный метод в базовом классе.

Например, рассмотрим следующие классы:

class Person
{
public string Name { get; set; }
public Person(string name)
{
Name = name;
}
public virtual void Display()
{
Console.WriteLine(Name);
}
}
class Employee : Person
{
public string Company { get; set; }
public Employee(string name, string company) : base(name)
{
Company = company;
}
}

Здесь класс Person представляет человека. Класс Employee наследуется от Person и представляет сотруднника предприятия. Этот класс кроме
унаследованного свойства Name имеет еще одно свойство — Company.

Чтобы сделать метод Display доступным для переопределения, этот метод определен с модификатором virtual. Поэтому мы можем переопределить этот метод, но можем и не переопределять.
Допустим, нас устраивает реализация метода из базового класса. В этом случае объекты Employee будут использовать реализацию метода Display из класса Person:

static void Main(string[] args)
{
Person p1 = new Person(«Bill»);
p1.Display(); // вызов метода Display из класса Person

Employee p2 = new Employee(«Tom», «Microsoft»);
p2.Display(); // вызов метода Display из класса Person

Console.ReadKey();
}

Консольный вывод:

Но также можем переопределить виртуальный метод. Для этого в классе-наследнике определяется метод с модификатором override,
который имеет то же самое имя и набор параметров:

class Employee : Person
{
public string Company { get; set; }
public Employee(string name, string company)
: base(name)
{
Company = company;
}

public override void Display()
{
Console.WriteLine($»{Name} работает в {Company}»);
}
}

Возьмем те же самые объекты:

static void Main(string[] args)
{
Person p1 = new Person(«Bill»);
p1.Display(); // вызов метода Display из класса Person

Employee p2 = new Employee(«Tom», «Microsoft»);
p2.Display(); // вызов метода Display из класса Employee

Console.ReadKey();
}

Консольный вывод:

Bill
Tom работает в Microsoft

Виртуальные методы базового класса определяют интерфейс всей иерархии, то есть в любом производном классе, который не является прямым наследником от
базового класса, можно переопределить виртуальные методы. Например, мы можем определить класс Manager, который будет производным от Employee, и в нем также переопределить
метод Display.

При переопределении виртуальных методов следует учитывать ряд ограничений:

  • Виртуальный и переопределенный методы должны иметь один и тот же модификатор доступа. То есть если виртуальный метод определен с помощью модификатора
    public, то и переопредленный метод также должен иметь модификатор public.

  • Нельзя переопределить или объявить виртуальным статический метод.

Переопределение свойств

Также как и методы, можно переопределять свойства:

class Credit
{
public virtual decimal Sum { get; set; }
}
class LongCredit : Credit
{
private decimal sum;
public override decimal Sum
{
get
{
return sum;
}
set
{
if(value > 1000)
{
sum = value;
}
}
}
}
class Program
{
static void Main(string[] args)
{
LongCredit credit = new LongCredit { Sum = 6000 };
credit.Sum = 490;
Console.WriteLine(credit.Sum);
Console.ReadKey();
}
}

Ключевое слово base

Кроме конструкторов, мы можем обратиться с помощью ключевого слова base к другим членам базового класса.
В нашем случае вызов base.Display(); будет обращением к методу Display() в классе Person:

class Employee : Person
{
public string Company { get; set; }

public Employee(string name, string company)
:base(name)
{
Company = company;
}

public override void Display()
{
base.Display();
Console.WriteLine($»работает в {Company}»);
}
}

Запрет переопределения методов

Также можно запретить переопределение методов и свойств. В этом случае их надо объявлять с модификатором sealed:

class Employee : Person
{
public string Company { get; set; }

public Employee(string name, string company)
: base(name)
{
Company = company;
}

public override sealed void Display()
{
Console.WriteLine($»{Name} работает в {Company}»);
}
}

При создании методов с модификатором sealed надо учитывать, что sealed применяется в паре с override, то есть только в переопределяемых методах.

И в этом случае мы не сможем переопределить метод Display в классе, унаследованном от Employee.

Источник