Я пытаюсь использовать подклассы в JavaScript, и я использую фильмы Marvel, чтобы сделать это.Вот мой суперкласс:
class Episode {
constructor(title, releaseDate, storyYear, phase, order, runtime, hero){
this.title = title;
this.releaseDate = releaseDate;
this.releaseMonth = parseInt(releaseDate.split('/')[0]);
this.releaseYear = parseInt(releaseDate.split('/')[1]);
this.episodeType = "";
this.storyYear = storyYear;
this.phase = phase;
this.order = order;
this.runtime = runtime;
this.hours = parseInt(runtime.split(':')[0]);
this.minutes = parseInt(runtime.split(':')[1]);
this.hero = hero;
}
}
Теперь я создал 3 подкласса.Один для фильмов, один для ТВ-шоу и один для "One Shots".Таким образом, я могу добавить дополнительную информацию, такую как «Сезон ТВ», «Эпизод» и DVD, частью которого является один снимок.
class Movie extends Episode {
constructor(title, releaseYear, storyYear, phase, order, runtime, hero){
super(title, releaseYear, storyYear, phase, order, runtime, hero);
this.episodeType = "Movie";
}
}
class TVShow extends Episode {
constructor(title, releaseYear, storyYear, phase, order, runtime, hero, episode){
super(title, releaseYear, storyYear, phase, order, runtime, hero);
this.episodeType = "TV Show";
this.episode = episode;
}
}
class OneShot extends Episode {
constructor(title, releaseYear, storyYear, phase, order, runtime, hero){
super(title, releaseYear, storyYear, phase, order, runtime, hero);
this.episodeType = "One Shot";
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что если я добавлю конструктор в исходный Эпизод, мне нужно пойти и добавить его также к каждому из подклассов.Это самый эффективный способ сделать это?