Не удается найти символ при создании объекта в классе ввода-вывода с использованием наследования

Я пытаюсь создать туристический объект в своем классе IO, и параметры правильно указаны в соответствующем классе. Тем не менее, он не будет компилироваться, поскольку говорит, что не может найти символ. Это потому, что я использую туриста в качестве подкласса? Компилятор говорит, что не может найти символ для переменной "nam" и т. Д. Спасибо за помощь.

Это метод в моем классе IO..

private void addMemberCard()
        {
            System.out.println("Enter Member name");
            String name = reader.nextLine();
            System.out.println("Select 1. Tourist, 2. Business");
            System.out.println("Enter your choice");
            int choice = reader.nextInt();


            MemberCard m;
            if (choice == 1){m = new Tourist (nam, rat, cred, cit);}
            else if (choice == 2){m = new Business(nam, rat);}
            preston.addMemberCard(m);
    }

а это мой конструктор в туристическом классе

public Tourist (String nam, int rat, int cred, String cit)
    {
        super(nam, rat, cred);
        city = cit;
    }

1 ответ

Решение

Это не имеет ничего общего с наследованием. Вы должны понимать разницу между параметрами и аргументами. Параметры nam, rat, cred, а также cit существуют только в пределах Tourist конструктор. в addMemberCard() метод, nam, rat, cred, а также cit не существует; отметки косвенно указали на это. Теперь вам нужно использовать аргументы, существующие переменные с фактическим значением.

Надеемся, что это поможет: http://en.wikipedia.org/wiki/Parameter_%28computer_programming%29

Другие вопросы по тегам