Wiem, nie możemy utworzyć instancji interfejsu ani klasy abstrakcyjnej w języku Java z wyjątkiem użycia metody anonimowej klasy, ale co za tym stoi powód?Dlaczego nie możemy utworzyć instancji interfejsu lub klasy abstrakcyjnej w języku Java bez metody anonimowej klasy?
Odpowiedz
Nie można utworzyć instancji interfejsu lub klasy abstrakcyjnej, ponieważ byłaby ona przeciwna modelowi zorientowanemu obiektowo.
Interfejsy oznaczają umowy - obietnica, że osoba wdrażająca interfejs będzie w stanie wykonać wszystkie te czynności, zrealizować umowę.
Klasy abstrakcyjne są podobnym pomysłem, ponieważ reprezentują niespełnioną umowę, obietnicę, że będą mogły coś robić, z wyjątkiem różnych interfejsów, które mają określone funkcje lub pola, ale muszą zostać wypełnione, zanim będą mogły zostać użyte.
Po prostu, w dobrym programie zorientowanym obiektowo, nigdy nie powinieneś chcieć tworzyć klasy abstrakcyjnej lub interfejsu. Jeśli tak, projekt prawdopodobnie jest błędny.
(Anonimowe klasy są w rzeczywistości nie-abstrakcyjnymi wystąpieniami, tylko że nie trzeba im nadawać nazwy, więc wydają się być "surowymi interfejsami", ale w rzeczywistości są implementacją interfejsu, który nie ma nazwy To przynajmniej moje zrozumienie.)
Oto podstawowe wyjaśnienie bez głębszej koncepcji.
Interface
ma sposobu realizacji, więc nie ma celu do oznacz ją jako „nic” się stanie wywołać metodęAbstract
klasa może miećabstract
deklarację metoda, która jest jak metody interfejsu bez wdrożenia .
Nie można utworzyć instancji interfejsów ani klas abstrakcyjnych, ponieważ niektóre z ich metod mogą nie mieć żadnych definicji.
Może wyjaśnić, że * brak * będzie z interfejsem. – ChiefTwoPencils
Czy Twój interfejs ma jakikolwiek kod? – ChiefTwoPencils