Przejdź do treści głównej
INF.04Pytanie #134 z 856klasy-obiekty-i-metody

W przedstawionym kodzie zdefiniowano abstrakcyjną klasę figura i dziedziczącą po niej klasę prostokąta ze zdefiniowanymi polami i konstruktorami. Wskaż minimalną implementację sekcji /* metody klasy */ dla klasy Prostokat:

Opcje odpowiedzi:
A
A
Prawidłowa
B
B
C
C
D
D
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: A

Uzasadnienie i szersze wyjaśnienie:

Zgodnie z zasadami programowania obiektowego, jeśli klasa konkretna (nieabstrakcyjna) dziedziczy po klasie abstrakcyjnej, ma obowiązek zaimplementować (czyli dostarczyć ciało) wszystkie metody abstrakcyjne zdefiniowane w klasie nadrzędnej. W tym przypadku klasa Prostokat dziedziczy po abstrakcyjnej klasie Figura, która definiuje dwie metody abstrakcyjne: abstract double Pole() oraz abstract double Obwod().

Oznacza to, że klasa Prostokat, aby mogła być skompilowana, musi zawierać konkretne implementacje obu tych metod, z zachowaniem ich oryginalnych nazw i sygnatur.

  • Opcja A jest jedyną, która spełnia te wymagania. Definiuje ona obie metody: public double Pole() oraz public double Obwod(), dostarczając dla nich logikę obliczeniową zgodną z definicją prostokąta.

Dlaczego pozostałe odpowiedzi są nieprawidłowe?

  • B. Implementuje tylko metodę Pole(). Brakuje implementacji metody Obwod(), co spowoduje błąd kompilacji z komunikatem, że klasa Prostokat musi zaimplementować odziedziczoną metodę abstrakcyjną Figura.Obwod().
  • C. Definiuje metody o innych nazwach (LiczPole i LiczObwod). Z perspektywy kompilatora nie są to implementacje metod Pole i Obwod wymaganych przez klasę Figura. To zupełnie nowe metody, a te abstrakcyjne nadal pozostają niezaimplementowane.
  • D. Próbuje zdefiniować metody jako abstrakcyjne i jednocześnie nadać im ciało (kod w nawiasach klamrowych), co jest niedozwolone. Metoda abstrakcyjna z definicji nie ma ciała. Ponadto klasa Prostokat jest zdefiniowana jako klasa konkretna, więc nie może zawierać metod abstrakcyjnych.

Chcesz poćwiczyć całą kwalifikację INF.04?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Klasy obiekty i metody”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 38 pytań z tego działu.