Наследование и static поля - C#
Формулировка задачи:
Не могу понять почему так происходит.
Создаю класс Ship с одним public static свойством.
Создаю два класса наследника Fighter и Destroyer.
Вывожу на консоль значение поля weapon для каждого класса (по умолчанию ноль).
Меняю значение поля weapon для класса Ship и значение поля weapon меняется и у наследников (Можно поменять значение поля и у кого-нибудь из наследников, ничего не поменяется. Все классы, в том числе и родитель тоже будут иметь новое значение поля).
Почему?
Подскажите кто знает.class Program { static void Main(string[] args) { Console.WriteLine(Ship.weapon); Console.WriteLine(Fighter.weapon); Console.WriteLine(Destroyer.weapon); Console.ReadLine(); Ship.weapon = 10; Console.WriteLine(Ship.weapon); Console.WriteLine(Fighter.weapon); Console.WriteLine(Destroyer.weapon); Console.ReadLine(); } } class Ship { public static int weapon; } class Fighter : Ship { } class Destroyer : Ship { }
Решение задачи: «Наследование и static поля»
textual
Листинг программы
using System; using System.Management; using System.Collections.Generic; public class Sample { class Program { static void Main(string[] args) { Console.WriteLine(Ship.weapon); Console.WriteLine(Fighter.weapon); Console.WriteLine(Destroyer.weapon); Console.ReadLine(); } } abstract class Ship { public const int weapon=0; } class Fighter : Ship { public new const int weapon=10; } class Destroyer : Ship { public new const int weapon = 15; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д