Wiki stawia go bardzo dokładnie
danych abstrakcji
abstrakcję danych wymusza wyraźne rozgraniczenie między abstrakcyjnych właściwości typu danych i konkretnych informacji o jego realizacji. Właściwości abstrakcyjne to te, które są widoczne dla kodu klienta, który wykorzystuje typ danych - interfejs dla typu danych - podczas gdy konkretna implementacja jest utrzymywana całkowicie prywatnie i rzeczywiście może się zmieniać, na przykład w celu uwzględnienia poprawy wydajności w czasie. Chodzi o to, że takie zmiany nie powinny mieć żadnego wpływu na kod klienta, ponieważ nie pociągają za sobą żadnej różnicy w abstrakcyjnym zachowaniu. Na przykład można zdefiniować abstrakcyjny typ danych o nazwie tabela odnośników, która jednoznacznie kojarzy klucze z wartościami i w których wartości można pobrać, podając odpowiednie klucze. Taka tablica przeglądowa może być implementowana na różne sposoby: jako tablica asocjacyjna, drzewo wyszukiwania binarnego, a nawet prosta lista liniowa par (klucz: wartość). Jeśli chodzi o kod klienta, abstrakcyjne właściwości tego typu są w każdym przypadku takie same.
Rozważmy na przykład przykładowy fragment Javy, aby przedstawić niektóre zwykłe "zwierzęta" z gospodarstwa na poziom abstrakcji odpowiedni do modelowania prostych aspektów ich głodu i karmienia. Definiuje klasę Animal reprezentować zarówno stan zwierzęcia i jego funkcje:
public class Animal extends LivingThing
{
private Location loc;
private double energyReserves;
public boolean isHungry() {
return energyReserves < 2.5;
}
public void eat(Food f) {
// Consume food
energyReserves += f.getCalories();
}
public void moveTo(Location l) {
// Move to new location
loc = l;
}
}
z powyższą definicją, można tworzyć obiekty typu Animal i nazywają swoje metody tak:
thePig = new Animal();
theCow = new Animal();
if (thePig.isHungry()) {
thePig.eat(tableScraps);
}
if (theCow.isHungry()) {
theCow.eat(grass);
}
theCow.moveTo(theBarn);
http://www.javacoffeebreak.com/faq/faq0084.html. –
@ crowso- nie jesteś jeszcze zadowolony z odpowiedzi? Proszę przyjąć jedną z odpowiedzi –