package com.javarush.test.level14.lesson08.home04;
/* Реализовать метод printMainInfo
1. Напиши реализацию метода printMainInfo, чтобы:
1.1. Если в метод передают объект типа Drawable, у этого объекта вызывался метод draw.
1.2. Если в метод передают объект типа Movable, у этого объекта вызывался метод move.
2. Метод main менять нельзя.
*/
public class Solution
{
public static void main(String[] args)
{
Object obj = new Circle();
Movable movable = (Movable) obj;
Drawable drawable = new Rectangle();
printMainInfo(drawable); //метод передаёт объект
printMainInfo(movable);
}
public static void printMainInfo(Object object) //метод принимает объект
{
//Add your code here
if (object instanceof Drawable)
((Drawable)object).draw(); //вызываем метод draw() у объекта object типа Drawable. Существует интерфеейс Drawable с методом draw, а в классе Rectangle, наследованном от интерфейса Drawable, есть void-метод draw
if (object instanceof Movable)
((Movable)object).move();
}
static interface Movable
{
void move();
}
static class Circle implements Movable
{
public void draw()
{
System.out.println("can be drawn");
}
public void move()
{
System.out.println("can be moved");
}
}
static interface Drawable
{
void draw();
}
static class Rectangle implements Drawable
{
public void draw()
{
System.out.println("can be drawn");
}
public void move()
{
System.out.println("can be moved");
}
}
}
Leave A Comment