Рубрики

Доступ к члену дедушки в Java с помощью супер

Прямой доступ к члену дедушки в Java:

Предсказать вывод следующей программы 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();

    }

}

Вывод: ошибка компилятора
В строке «super.super.print ();» есть ошибка. В Java класс не может напрямую обращаться к членам дедушки и бабушки. Это разрешено в C ++, хотя. В C ++ мы можем использовать оператор разрешения области видимости (: 🙂 для доступа к любому члену предка в иерархии наследования. В Java мы можем получить доступ к членам бабушки и дедушки только через родительский класс. Например, следующая программа компилируется и работает нормально.

// имя файла 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()");

    }

}

   

public class Main {

    public static void main(String[] args) {

        Child c = new Child();

        c.Print();

    }

}

Выход:

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

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

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

Доступ к члену дедушки в Java с помощью супер

0.00 (0%) 0 votes