Как создать объект в Java и в зависимости от типа объявлять доп. параметры для объекта? Т.е у меня есть объект Автомобиль, он ограничивается enum'om(седан, хатчбек, внедорожник, кроссовер), т.к типов объектов несколько, мне нужно при создании объекта в зависимости от выбора дописать доп параметры (седану, хатчбеку - кол-во дверей, внедорожнику - тип рамы, кроссоверу - другой параметр) Как это реализовать? Или как-то можно это без enum реализовать?
Для реализации данной задачи можно создать класс Автомобиль, а затем создать подклассы для каждого типа автомобилей (седан, хэтчбек, внедорожник, кроссовер). Каждый подкласс будет иметь свои дополнительные параметры, которые необходимо указать при создании объекта.
Пример реализации:
public class Автомобиль { private String тип; public Автомобиль(String тип) { this.тип = тип; } public String getТип() { return тип; } } public class Седан extends Автомобиль { private int колвоДверей; public Седан(int колвоДверей) { super("седан"); this.колвоДверей = колвоДверей; } public int getКолвоДверей() { return колвоДверей; } } public class Хэтчбек extends Автомобиль { private int колвоДверей; public Хэтчбек(int колвоДверей) { super("хэтчбек"); this.колвоДверей = колвоДверей; } public int getКолвоДверей() { return колвоДверей; } } // Аналогично создаем классы для других типов автомобилей public class Main { public static void main(String[] args) { Седан седан = new Седан(4); Хэтчбек хэтчбек = new Хэтчбек(5); System.out.println("Тип: " + седан.getТип() + ", Кол-во дверей: " + седан.getКолвоДверей()); System.out.println("Тип: " + хэтчбек.getТип() + ", Кол-во дверей: " + хэтчбек.getКолвоДверей()); } }
Таким образом, при создании объекта типа Седан или Хэтчбек, необходимо указать параметр колвоДверей, а для других типов автомобилей можно добавить другие необходимые параметры. Объекты будут иметь доступ к своим уникальным параметрам через геттеры.
Для реализации данной задачи можно создать класс Автомобиль, а затем создать подклассы для каждого типа автомобилей (седан, хэтчбек, внедорожник, кроссовер). Каждый подкласс будет иметь свои дополнительные параметры, которые необходимо указать при создании объекта.
Пример реализации:
public class Автомобиль {private String тип;
public Автомобиль(String тип) {
this.тип = тип;
}
public String getТип() {
return тип;
}
}
public class Седан extends Автомобиль {
private int колвоДверей;
public Седан(int колвоДверей) {
super("седан");
this.колвоДверей = колвоДверей;
}
public int getКолвоДверей() {
return колвоДверей;
}
}
public class Хэтчбек extends Автомобиль {
private int колвоДверей;
public Хэтчбек(int колвоДверей) {
super("хэтчбек");
this.колвоДверей = колвоДверей;
}
public int getКолвоДверей() {
return колвоДверей;
}
}
// Аналогично создаем классы для других типов автомобилей
public class Main {
public static void main(String[] args) {
Седан седан = new Седан(4);
Хэтчбек хэтчбек = new Хэтчбек(5);
System.out.println("Тип: " + седан.getТип() + ", Кол-во дверей: " + седан.getКолвоДверей());
System.out.println("Тип: " + хэтчбек.getТип() + ", Кол-во дверей: " + хэтчбек.getКолвоДверей());
}
}
Таким образом, при создании объекта типа Седан или Хэтчбек, необходимо указать параметр колвоДверей, а для других типов автомобилей можно добавить другие необходимые параметры. Объекты будут иметь доступ к своим уникальным параметрам через геттеры.