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
- 1. Tworzenie instancji klasy abstrakcyjnej lub anonimowej
- 2. Nie można utworzyć instancję klasy abstrakcyjnej lub interfejsu
- 3. Korzystanie z metody abstrakcyjnej klasy
- 4. Konstruktor - wzór bez abstrakcyjnej klasy/interfejsu
- 5. Dlaczego używać pustej klasy abstrakcyjnej zamiast interfejsu?
- 6. Metoda rozwiązywania błędów: "nie można utworzyć instancji klasy abstrakcyjnej"
- 7. Odpowiednik anonimowej klasy języka Java w języku C#?
- 8. Różne metody zwracania metody abstrakcyjnej w języku Java bez odlewania
- 9. instancja klasy abstrakcyjnej
- 10. Potrzebujesz klasy abstrakcyjnej, a także interfejsu?
- 11. Zastępowanie pól klasy abstrakcyjnej Java
- 12. Uzyskaj nazwę klasy betonu od klasy abstrakcyjnej
- 13. Uszczelnianie klasy abstrakcyjnej lub interfejsu w klasie .NET
- 14. Jak wywołać metodę klasy abstrakcyjnej w java
- 15. Jak stworzyć instancję anonimowej klasy abstrakcyjnej w Kotlin?
- 16. Uzyskaj nazwę klasy Ruby bez metody klasy
- 17. Nie można utworzyć instancji klasy mediaextractor przy użyciu metody setDataSource()
- 18. Dlaczego nie jest możliwe wyeksportowanie instancji klasy w języku TypeScript?
- 19. Czy metody klasy zwiększają wielkość instancji klasy?
- 20. Rozwiąż Java Generic typ błędu z klasy abstrakcyjnej metody
- 21. sortowanie java przy użyciu anonimowej klasy
- 22. dlaczego nie ma metody Center() klasy Rectangle w języku C#?
- 23. Jak możemy utworzyć obiekt interfejsu w java?
- 24. Dlaczego możemy użyć "this" jako parametru metody instancji?
- 25. Definiowanie metody abstrakcyjnej bez określania parametrów
- 26. Klasy przypadków dziedziczących z klasy abstrakcyjnej
- 27. Jak wykrywać instancję anonimowej klasy?
- 28. Uzyskaj wszystkie odziedziczone klasy ogólnej klasy abstrakcyjnej
- 29. Metody statyczne w instancji klasy - dobre, złe lub zależne?
- 30. Zwróć zagnieżdżony typ klasy w języku Java
Czy Twój interfejs ma jakikolwiek kod? – ChiefTwoPencils