Наследование и 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;
}
}