Jak klasa abstrakcyjna może coś robić?
Klasa abstrakcyjna nie może posiadać instancji, ale może nadal przechowywać m. in. metody statyczne, które wywołuje się bezpośrednio z jej poziomu.
W tym przypadku mamy do czynienia z abstrakcyjnymi metodami w klasie abstrakcyjnej, więc będzie zawierała jedynie deklarację metody – coś w rodzaju protezy interfejsów.
Zatem, kod mógłby wyglądać na przykład tak:
public abstract class Operation {
public abstract int subtract(int n1, int n2);
}
public class NumbersSubtractOperation extends Operation {
private int number1;
private int number2;
public NumbersSubstractOperation(int n1, int n2) {
number1 = n1;
number2 = n2;
}
public int getNumber1() {
return number1;
}
public void setNumber1(int newValue) {
number1 = newValue;
}
public int getNumber2() {
return number2;
}
public void setNumber2(int newValue) {
number2 = newValue;
}
public int subtract(int n1, int n2) {
return n1 - n2;
}
}
nie pisuję za dużo w Javie
Co oznacza "zgodnie ze specyfikacją"?
W tym przypadku zapewne chodzi o utworzenie logiki dla specyfikowanej przez zadanie (?) funkcji: ma swoją nazwę, argumenty i wartość, która ma być zwrócona.
EDIT: drobne poprawki redakcyjne w pierwszym akapicie.
EDIT #2: dodanie brakującej frazy przysłówkowej zgodnie z uwagą w komentarzu.