Site icon Java blog

Java #26: klasa Object

java object class

Klasa Object – matka wszystkich klas

Wróć do znanej z poprzednich lekcji klasy Cat (może to być też jakakolwiek inna zaimplementowana przez Ciebie klasa) i spróbuj wywołać ją w metodzie main, tak jak na obrazku:

Dodatkowe metody, które dziedziczą po klasie Object

W menu kontekstowym Eclipse widać wszystkie metody dostępne z klasy, którą wywołujesz (w tym przypadku po Cat, a także dziedziczonych po Animal). Jest to logiczne, że używając obiektu danej klasy, masz możliwość korzystania w innej klasie wszystkich pól lub metod, które do niej należą (o ile pozwalają Ci na to akcesory dostępu, takie jak np. public). Pytanie, które już od dawno może Cię nurtować jest, co oznaczają pozostałe metody, pochodzące od klasy Object?

Klasa Object i dziedziczenie

Jak już wiesz, programiści Java uwielbiają upraszczać sobie życie, czasem łamiąc własne reguły. Tak się działo z literałami, czy konstruktorami domyślnymi. Ogólnie takich uproszczeń jest dużo w języku Java. Jednym z nich jest klasa Object. Czyli super klasa, która jest nad wszystkimi innymi. Gdyby narysować drzewo dziedziczenia każdego projektu Java na samym wierzchołku zawsze będzie widnieć ta klasa. Mówiąc wprost, sygnatura omawianej klasy Animal, w wersji bardziej formalnej powinna wyglądać tak:

public abstract class Animal extends Object

Do klasy Cat nie możesz dodać już Object ani żadnej innej klasy, bo język Java nie przewiduje wielodziedziczenia, czyli czegoś takiego:

public class Cat extends Animal, Object

Klasa Object – właściwości

Natomiast nie ma to znaczenia, bo każda klasa jeśli niczego nie dziedziczy to niejawnie ma wpisane końcówkę extends Object. Koniec końców metody tej klasy są dostępne w każdej innej. Zapytasz w końcu, po co taka wszędzie dostępna klasa? Autorzy języka Java stwierdzili, że są metody, które są tak często używane, że przydałoby się, aby były dostępne w każdej innej bez korzystania z polecenia import.*

O to metody, które możesz w niej znaleźć :

* Czy praktyka pokazała, że to ma faktycznie jakiś sens, to już inna sprawa..

** https://pl.wikipedia.org/wiki/Tablica_mieszająca

*** Garbage collector to specjalny proces wirtualnej maszyny Java, służący do 'odśmiecania’ pamięci z nieużywanych referencji do obiektów.

Ta lekcja nie posiada specjalnego kodu, natomiast proponuję powtórzyć sobie informacje o dziedziczeniu: Java #9: dziedziczenie oraz modyfikator protected

Exit mobile version