В ходе проведения собеседований выделил для себя несколько интересных задач по базовым знаниям языка Java. Вот две неплохие:
I. Что произойдет при выполнении класса?
public class Finally {
public static void main(String[] args) {
try {
return;
} finally {
System.out.println(«finally»);
}
}
}
A. Компилятор выдаст ошибку.
B. Распечается «finally».
C. Ничего не распечатается.
II. Изменится ли вывод, если в классе A у метода doInternal() заменить модификатор доступа: 1) на private, 2) на public?
public class A {
public static void main(String[] trs) {
new B().doPublic();
}
public void doPublic() {
doInternal();
}
protected void doInternal() {
System.out.println(«Do internal in A»);
}
}
class B extends A {
public void doInternal() {
System.out.println(«Do internal in B»);
}
}
I. Что произойдет при выполнении класса?
public class Finally {
public static void main(String[] args) {
try {
return;
} finally {
System.out.println(«finally»);
}
}
}
A. Компилятор выдаст ошибку.
B. Распечается «finally».
C. Ничего не распечатается.
II. Изменится ли вывод, если в классе A у метода doInternal() заменить модификатор доступа: 1) на private, 2) на public?
public class A {
public static void main(String[] trs) {
new B().doPublic();
}
public void doPublic() {
doInternal();
}
protected void doInternal() {
System.out.println(«Do internal in A»);
}
}
class B extends A {
public void doInternal() {
System.out.println(«Do internal in B»);
}
}