ЗАДАЧА 14.04.03.
package com.javarush.test.level14.lesson04.task03;
/* Food
1. Реализовать интерфейс Selectable в классе Food.
2. Метод onSelect() должен писать в консоль "food is selected".
3. Подумай, какие методы можно вызвать для переменной food и какие для selectable.
4. В методе foodMethods вызови методы onSelect, eat, если это возможно.
5. В методе selectableMethods вызови методы onSelect, eat, если это возможно.
6. Явное приведение типов не использовать.
*/
public class Solution
{
public static void main(String[] args)
{
Food food = new Food();
Selectable selectable = new Food();
Food newFood = (Food) selectable;
selectableMethods(selectable);
foodMethods(food);
}
public static void foodMethods(Food food)
{
//тут добавьте вызов методов для переменной food
food.onSelect();
food.eat();
}
public static void selectableMethods(Selectable selectable)
{
//тут добавьте вызов методов для переменной selectable
selectable.onSelect();
}
interface Selectable
{
void onSelect();
}
static class Food implements Selectable
{
public void eat()
{
System.out.println("food is eaten");
}
@Override
public void onSelect()
{
System.out.println("food is selected");
}
}
}
ЗАДАЧА 14.04.04.
package com.javarush.test.level14.lesson04.task04;
/* Без ошибок
Инициализировать объект obj таким классом, чтобы метод main выполнился без ошибок.
*/
public class Solution
{
public static void main(String[] args)
{
Object obj = new Jerry();
Mouse mouse = (Mouse) obj;
GreyMouse greyMouse = (GreyMouse) mouse;
Jerry jerry = (Jerry) greyMouse;
printClasses(obj, mouse, greyMouse, jerry);
}
public static void printClasses(Object obj, Mouse mouse, GreyMouse greyMouse, Jerry jerry)
{
System.out.println(jerry.getClass().getSimpleName());
System.out.println(greyMouse.getClass().getSimpleName());
System.out.println(mouse.getClass().getSimpleName());
System.out.println(obj.getClass().getSimpleName());
}
static class Mouse
{
}
static class GreyMouse extends Mouse
{
}
static class Jerry extends GreyMouse
{
}
}
ЗАДАЧА 14.04.05.
package com.javarush.test.level14.lesson04.task05;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/* Player and Dancer
1. Подумать, что делает программа.
2. Изменить метод haveRest так, чтобы он вызывал метод
- play, если person имеет тип Player
- dance, если person имеет тип Dancer
*/
public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = null;
String key;
while (!(key = reader.readLine()).equals("exit"))
{
if ("player".equals(key))
{
person = new Player();
} else if ("dancer".equals(key))
{
person = new Dancer();
}
haveRest(person);
}
}
public static void haveRest(Person person)
{
//Add your code here
if (person instanceof Player)
{
Player player = (Player) person;
player.play();
}
else if (person instanceof Dancer)
{
Dancer dancer = (Dancer) person;
dancer.dance();
}
}
interface Person
{
}
static class Player implements Person
{
void play()
{
System.out.println("playing");
}
}
static class Dancer implements Person
{
void dance()
{
System.out.println("dancing");
}
}
}
Leave A Comment