Member 13612796 Ответов: 0

Как создать подкласс, реализующий интерфейс для поиска ключа и значения на карте?


import java.util.HashMap;
import java.util.Map;


interface ISample {

    public void addUnit(String name, int id, String description);

}

class Unit{
    // Public used for brevity
    String name;
    int id;
    String description;

    public Unit(){}

    public Unit(String name, int id, String description){
        this.name = name;
        this.id = id;
        this.description = description;
    }
}

class Parent{

    protected Map<Integer, Unit> units = new HashMap<Integer, Unit>();

    public Unit lookupUnit(String name){
        for(Unit u : this.units.values()){
            if(u.name.equals(name)){
                return u;
            }
        }
        return null;
    }
}

/**
 Create a new class named Child that implements ISample and
 is a sub-class of Parent. Parent defines a method that does a unit
 lookup by name. Provide a method in Child that does a unit
 lookup by id.
 */


class Main{
    public static void main(String[] args){

        Child c = new Child();
        c.addUnit("Box", 123, "Used for storing small things");
        c.addUnit("Envelope", 456, "Used for shipping small things");
        c.addUnit("Crate", 789, "Used for shipping or storing large things");


        Unit unit = c.lookupUnit("Crate");
        System.out.println("Found unit: " + unit.name + " - " + unit.description);

        unit = c.lookupId(456);
        System.out.println("Found unit: " + unit.name + " - " + unit.description);
    }
}


Что я уже пробовал:

Public class Child extends Parent inherits ISample {

}

ZurdoDev

У вас есть конкретный вопрос? Где ты застрял?

Member 13612796

Да, создание метода!

phil.o

Это не вопрос. Вы объявили дочерний класс с правильным объявлением наследования и реализации интерфейса. Теперь вам нужно реализовать метод интерфейса addUnit и создать второй метод для поиска по идентификатору, как указано в требовании вашего домашнего задания.

0 Ответов