Кто может, не залезая в ИДЕЮ, сказать, что выдаст в консоль следующий код и почему? :)
class Feline {
public String type = "f ";
public Feline() {
System.out.print("feline ");
}
}
public class Cougar extends Feline {
public Cougar() {
System.out.print("cougar ");
}
public void go() {
type = "c ";
System.out.print(this.type + super.type);
}
public static void main(String[] args) {
new Cougar().go();
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
2. Перед выполнением конструктора Cougar неявно запускается конструктор родительского класса Feline (super()), он выводит строку «feline »;
3. Продолжает выполнятся конструктор класса Cougar, он выводит «cougar »;
4. После этого идет выполнение метода go(). Присваивается значение переменной type = «c », переменная у нас одна для this и super, поэтому строка System.out.print(this.type + super.type); выведет «c » + «c ».
Вывод: “feline cougar c c ”