2013-12-12 3 views
-3

ВОПРОС 27 Дано:Как работает ключевое слово super в этом примере?

class X { 
    X() { 
     System.out.print(1); 
    } 

    X(int x) { 
     this(); 
     System.out.print(2); 
    } 
} 

public class Y extends X { 
    Y() { 
     super(6); 
     System.out.print(3); } 

    Y(int y) { 
     this(); 
     System.out.println(4); 
    } 

    public static void main(String[] a) { 
     new Y(5); 
    } 
} 

анс этого 1234. Может кто-то пожалуйста, объясните мне, как?

+0

На каком языке это? –

+0

Это домашнее задание? –

+0

нет, я пытаюсь изучить JAVA. Если бы это была домашняя работа, я бы не стал упоминать ответ. – Gaurav

ответ

0

Ответ не номер, а строка "1234".
Он показывает, как вызываются конструкторы обоих классов X и Y.

Функция main вызывает второй конструктор Y.
Потому что Y является подклассом X, сначала называется конструктор X.

+0

, но почему здесь называется X, это мой вопрос? Супер конструктор вызывается только при упоминании. в то время как здесь нет супер-конструктора, вызванного методом «Y (int y)». – Gaurav

+0

@Gaurav: В вашем примере 'Y (int y)' вызывает 'Y()', который в свою очередь вызывает 'X (int x)' - который вызывает 'X()', просто следуйте за вызовом по вызову. Кстати, супер конструктор называется * всегда *. В этом случае он вызывается для * select * конкретного конструктора. – joe

Смежные вопросы