class Rifle {
void shoot() {
System.out.println("rifle shoot");
}
void reload() {
System.out.println("rifle reload");
}
void onlyRifle() {
System.out.println("rifle!");
}
}
class Shotgun {
void shoot() {
System.out.println("shotgun shoot");
}
void reload() {
System.out.println("shotgun reload");
}
void onlyShotgun() {
System.out.println("shotgun!");
}
}
Мне нужен класс Оружие, которое будет использовать метод стрельбы() из винтовки и метод перезагрузки() из дробовика Как это сделать с помощью интерфейса? Представьте себе, что Я НЕ МОГУ ИЗМЕНИТЬ класс Винтовки и класс РужьеКак создать интерфейс для двух методов класса и меток, которые я могу использовать?
Моей плохая реализация
class Weapon {
Rifle myRifle;
Shotgun myShotgun;
Weapon() {
myRifle = new Rifle();
myShotgun = new Shotgun();
}
void shoot() {
myRifle.shoot();
}
void reload() {
myShotgun.reload();
}
void onlyShotgun() {
myShotgun.onlyShotgun();
}
void onlyRifle() {
myRifle.onlyRifle();
}
}
...main(){
Weapon myWeapon = new Weapon();
myWeapon.shoot();
myWeapon.reload();
myWeapon.onlyRifle();
myWeapon.onlyShotgun();
}
Это работа, что я хочу, но как я могу это сделать более просто с помощью интерфейсов?
Если вы не можете изменить 'Rifle' и Shotgun', Я не вижу, как интерфейс вам поможет, поскольку вы не можете изменить эти классы для реализации интерфейса. – Eran
Как вы говорите, вы не можете модифицировать классы, можете ли вы все еще много писать в них - .. орудия оружия – rajesh
требуется создать объект оружия? или вы можете создать любой объект? – Secondo