Enkapsulacja jest zdecydowanie możliwa bez dziedziczenia. Enkapsulacja to koncepcja ukrywania danych pochodzących z obiektów zewnętrznych, które nie powinny móc nimi manipulować. Przykładem enkapsulacji będą prywatne pola obiektu w Javie. Następnie można użyć publicznych metod (takich jak pobierające i ustawiające lub inne metody obliczeniowe) do manipulowania danymi tylko w razie potrzeby.
Abstrakcja i polimorfizm są jednak bezpośrednio związane z dziedziczeniem.
Abstrakcja jest po odjęciu szczegółów implementacji obiektu i utworzenia klasy abstrakcyjnej lub interfejsu (mówiąc językiem Java). Będzie to stanowić umowę na to, co każda klasa implementująca lub dziedzicząca będzie musiała uwzględnić w szczegółowym wdrożeniu. Klasa abstrakcyjna będzie miała podpisy metod, ale bez treści; klasa dziedzicząca zaimplementuje ciała.
Polimorfizm to zdolność do implementacji czegoś abstrakcyjnego w różnych formach. Na przykład, jeśli masz klasę abstrakcyjną o nazwie Animal, która zawierała metodę speak(), możesz utworzyć klasę Dog, która dziedziczy po Animal i implementować speak(), aby drukować "woof", podczas gdy klasa Cat() implementowałaby funkcję speak (), aby wydrukować "miau".
Należy pamiętać, że zależy to od rodzaju badanego polimorfizmu.Możesz, jak stwierdzono w innej odpowiedzi, mieć polimorfizm parametrów metody/funkcji, i jak stwierdzono, że jest to możliwe bez dziedziczenia.
Tak, w enkapsulacji. Mówisz, że masz jedną klasę, w której masz wszystkie metody i chcesz to ukryć spoza świata? dobrze? to gdzie jest twoja metoda dostępu? Jeśli jest w tej samej klasie? to nie są odkryte? –
Chciałem ukryć właściwości klasy lub instancji ze świata zewnętrznego, więc budujesz metody (ustawiające, pobierające itp.), Aby uniknąć bezpośredniego dostępu do nich. To jest hermetyzacja. – manolonte
Część "etc" jest niezbędna. Niektórzy ludzie uważają, że hermetyzacja polega tylko na dostarczaniu pobierających i ustawiających, nie zdając sobie sprawy, że faktycznie chodzi o łączenie danych i związanych z nimi zachowań (tj. Metod, które wykorzystują te dane). [http://www.javaworld.com/article/2075271/core-java/encapsulation-is-not-information-hiding.html](http://www.javaworld.com/article/2075271/core-java/ encapsulation-is-not-information-hiding.html) – Piovezan