super.input1 = input.nextInt (); - PullRequest
       12

super.input1 = input.nextInt ();

0 голосов
/ 05 октября 2018

Кто-нибудь может подсказать, пожалуйста, в чем здесь используется ключевое слово super?Я пытаюсь написать код для операции сложения, используя наследование, в котором есть три класса, где переменные объявлены в одном классе, а фактический код для операции находится в другом классе, а основной класс находится там.

class Oper extends Variables {
    void op() {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter any two numbers: ");
        super.input1 = input.nextInt();
        super.input2 = input.nextInt();
        result = input1 + input2;
        System.out.println("Result = " + result);
    }
}

class Variables {
    int input1, input2, result;
}

class Addition {
    public static void main(String[] args) {
        Oper obj = new Oper();
        obj.op();
    }
}

1 Ответ

0 голосов
/ 05 октября 2018

super после javadocs говорит, что:

Если ваш метод переопределяет один из методов его суперкласса, вы можете вызвать переопределенный метод с помощью ключевого слова super.Вы также можете использовать super, чтобы ссылаться на скрытое поле (хотя скрывать поля не рекомендуется).

В вашем примере super ссылается на свойства родительского элемента class Variable.Вы можете опустить его, так как дочерний класс не имеет свойств с тем же именем.Если у вас будет одно и то же имя переменной в Variable классе и Oper классе, то вам придется использовать его для дифференциации.

и около input.nextInt():

в вашем случаеввод System.in, поэтому он считывает данные с системного входа, по умолчанию это консольный ввод.nextInt() читает символы и преобразует их в тип int ( дополнительная информация ).

Считывает четыре входных байта и возвращает значение типа int

...