Могу ли я установить логическое значение в подклассе, которое унаследовано от super? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть родительский класс «Подарок» и несколько подклассов, расширяющих его.Я бы хотел, чтобы логический «гарантийный» был верным для одних и ложным для других.Я обновил код, чтобы отразить ... обновлений.

Теперь кажется, что «Подарок» реализуется, но я получаю сообщение об ошибке, заявляющее, что это не так.

public class CustomerGifts {

    public static void giveGift() {

    }

    public static void main(String[] args) {

        int[] crowd = new int[100];

        for (int person : crowd) {

            int prize = (int)(Math.random() * 11);

            if(prize >= 0 && prize <= 3) {
                System.out.println("Computer");
                Computer computer = new Computer(true);
                computer.hasWarranty();
            } else if(prize >= 4 && prize <=7) {
                System.out.print("Entertainment");
            } else if (prize >= 8 && prize <= 10) {
                System.out.print("Office");
            }

            System.out.println(prize);
        }

    }

}

class Customer {
    int returns;
}

interface Gift {
    boolean hasWarranty(boolean arg);
}

class Computer implements Gift {
    boolean processor = true;
    boolean warranty;

    Computer(boolean returnable) {
        this.warranty = returnable;
    }

    boolean hasWarranty() {
        return this.warranty;
    }
}

1 Ответ

1 голос
/ 26 сентября 2019

Я рекомендую вам определить Gift как interface, который реализован в ваших классах.Что-то вроде:

interface Gift {
    boolean hasWarranty();
}

class Computer implements Gift {
    private boolean warranty;

    @Override
    public boolean hasWarranty() {
        return warranty;
    }
}

class GreetingCard implements Gift {
    @Override
    public boolean hasWarranty() {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...