Рубрики

Java | Наследование Вопрос 8

Предсказать вывод следующей Java-программы

// имя файла Main.java

class Grandparent {

    public void Print() {

        System.out.println("Grandparent's Print()");

    }

}

   

class Parent extends Grandparent {

    public void Print() {

        System.out.println("Parent's Print()");

    }

}

   

class Child extends Parent {

    public void Print() {

        super.super.Print(); 

        System.out.println("Child's Print()");

    }

}

   

public class Main {

    public static void main(String[] args) {

        Child c = new Child();

        c.Print();

    }

}

(A) Ошибка компилятора в super.super.Print ()
(В)

Grandparent's Print()
Parent's Print()
Child's Print()

(C) Ошибка во время выполнения

Ответ: (А)
Объяснение: В Java запрещено делать super.super. Мы можем получить доступ только к членам Grandparent, используя Parent. Например, следующая программа работает нормально.

// Guess the output
// filename Main.java
class Grandparent {
    public void Print() {
        System.out.println("Grandparent's Print()");
    }
}
 
class Parent extends Grandparent {
    public void Print() {
    	super.Print();  
        System.out.println("Parent's Print()");
    }
}
 
class Child extends Parent {
    public void Print() {
        super.Print();  
        System.out.println("Child's Print()");
    }
}
 
class Main {
    public static void main(String[] args) {
        Child c = new Child();
        c.Print();
    }
}

Тест на этот вопрос

Рекомендуемые посты:

Java | Наследование Вопрос 8

0.00 (0%) 0 votes