Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста это все в java!!!!!

Вова Долгополов Ученик (98), на голосовании 1 год назад
Создайте абстрактный класс с именем Metal, создайте и унаследуйте от него такие материалы как steel, copper, iron.
В классе Metal нужен метод getEndurance, реализуйте его так, чтобы в классе steel этот метод возвращал значение 50, в iron – 30, а в copper 20.
Создайте так же класс Plastic который не является подклассом класса Metal.
Создайте класс Sword, используя дженерики обеспечьте типобезопасность таким образом, чтобы меч можно было создать используя любой материал, кроме пластика(Plastic).
В классе Sword создайте метод, который возвращает true, если меч прошёл проверку прочности и false, если не прошёл. Используйте метод getEndurance.
Чтобы меч прошёл проверку прочности его прочность должна быть строго больше 49.
В классе Test создайте метод main и протестируйте ваше решение.
- У вас не должно получиться создать экземпляр меча используя пластик.
- Создайте меч используя steel
- Выведите на экран прошёл ли меч проверку прочности.
Голосование за лучший ответ
Москалёв Артём Профи (668) 1 год назад
Абстрактный класс Metal:

```
public abstract class Metal {
public abstract int getEndurance();
}
```

Классы steel, copper, iron, унаследованные от Metal:
```
public class Steel extends Metal {
@Override
public int getEndurance() {
return 50;
}
}

public class Copper extends Metal {
@Override
public int getEndurance() {
return 20;
}
}

public class Iron extends Metal {
@Override
public int getEndurance() {
return 30;
}
}
```

Класс Plastic не наследуется от Metal:
```
public class Plastic {
}
```

Класс Sword с использованием дженериков:
```
public class Sword<T extends Metal> {

private final T metal;

public Sword(T metal) {
this.metal = metal;
}

public boolean checkEndurance() {
return metal.getEndurance() > 49;
}

}
```

Тестовый класс Test:
```
public class Test {
public static void main(String[] args) {
// Не компилируется
// Sword<Plastic> plasticSword = new Sword<>(new Plastic());

// Создаем меч с использованием steel
Sword<Steel> steelSword = new Sword<>(new Steel());

// проверяем прочность и выводим результат на экран
boolean isStrong = steelSword.checkEndurance();
System.out.println("Меч из стали " + (isStrong ? "прошел" : "не прошел") + " проверку прочности");
}
}
```
Вова ДолгополовУченик (98) 1 год назад
емае так быстро спс.
Police09241Ученик (138) 1 год назад
Есть проблема.
Sword<Steel> steelSword = new Sword<>(new Steel()); выдаёт ошибку
Police09241 Ученик (138) Police09241, а имеено выдаёт ошибку что main не должен быть статичныйм
Похожие вопросы