Zagadka Java #11

Zagadki Java zawierają różnego rodzaju niuanse języka i „podchwytliwe” fragmenty kodu. Każda następna zagadka będzie zawierała odpowiedź i wyjaśnienie do poprzedniej. Lista wszystkich zagadek.

Jeżeli znasz odpowiedź, podziel się nią w komentarzu!

Zagadka Java #11

Jaki, oraz dlaczego, będzie wynik kompilacji i uruchomienia poniższej klasy?

public class AndOr {
  public static void main(String[] args) {
    boolean raining = false;
    boolean cold = false;
    boolean night = true;

    if (raining && cold || night) {
      System.out.println("Stay at home.");
    } else {
      System.out.println("Let's go!");
    }
  }
}

Odpowiedź do poprzedniej zagadki #10

Poniżej znajdziesz odpowiedź do poprzedniej zagadki.

Klasa ToTakeUmbrellaOrNot nie skompiluje się – kompilator zwróci następujący błąd:

error: ToTakeUmbrellaOrNot is not abstract and does not override abstract method question() in IsItRaining class ToTakeUmbrellaOrNot implements ToBeOrNotToBe, IsItRaining { ^ 1 error

Kompilator protestuje, ponieważ klasa ToTakeUmbrellaOrNot nie implementuje metody question z interfejsu IsItRaining. To, że klasa ta dziedziczy domyślną metodę o takiej samej sygnaturze i nazwie z interfejsu ToBeOrNotToBe nie ma w tym przypadku znaczenia.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.