Я занимаюсь факторингом своего кода. У меня есть класс Car как базовый класс. Расширение класса автомобилей - внедорожник и седан. Потенциально, мне придется добавить гораздо больше автомобилей. Все они будут иметь один и тот же метод Run. Интересно, можно ли удалить метод Run из всех производных классов и сохранить метод Run в классе Car, который ссылается на зажигание, созданное в производных классах. Ниже приведен упрощенный код. Кроме того, зажигание должно создаваться только один раз.Доступ к подклассу и атрибут из базового класса
public abstract class Car
{
static Ignition ignition;
static void Start(){ ignition = A;}
public void Run(){
using(ignition){
Start{};
}
}
}
public class Sedan : Car
{
static Ignition ignition;
static void Start(){ ignition = B;}
public void Run(){
using(ignition){
Start{};
}
}
}
public class SUV : Car
{
static Ignition ignition;
static void Start(){ ignition = C;}
public void Run(){
using(ignition){
Start{};
}
}
}
Почему 'Ignition' и' 'Start' static'? –
Вы не используете 'using', поскольку он был разработан. 'using' по существу компилируется в' try {new ignition(); } наконец {ignition.Dispose(); } 'и' Ignition' (базовый тип) должны реализовать интерфейс 'IDisposable'. В результате трудно сказать, что вы пытаетесь сделать здесь. –
Зажигание является статическим, потому что я пытался убедиться, что будет создан только один экземпляр для всех экземпляров каждого типа автомобилей. – eriflame