Мне было интересно, как работает java.awt.Graphics
, и я пошел в исходный код через NetBeans.
Я заметил, что Graphics - это класс abstract
, и все функции, которые я использую, - это abstract
функции
Это сделало меня делом, как я могу использовать Graphics?
Я имею в виду, что Graphics является классом abstract
, и я использую объект Graphics внутри JPanel.
Как это работает? как я могу использовать его в качестве абстрактного класса без использования класса, реализующего Graphics?
Как я могу использовать Graphics - абстрактный класс
ответ
Вы не можете использовать экземпляр абстрактного класса напрямую. Абстрактные классы, такие как Graphics, не могут быть созданы; только конкретные подклассы (Графика имеет два, DebugGraphics и Graphics2D). В случае JPanel аргумент Graphics, который вы получаете в paintComponent(), на самом деле является экземпляром Graphics2D (вы можете проверить это, выполнив его). Класс Graphics2D обеспечивает реализацию абстрактных методов в Graphics.
. Так почему же не рисовали вместо «Graphics2D»? почему он получает «Графика»? – Amirag
Вы должны использовать одну из своих реализаций, абстрактный класс не может быть инстанцирован.
- 1. как использовать абстрактный класс
- 2. Java- Как использовать абстрактный класс
- 3. Как я могу использовать абстрактный метод в надлежащем порядке?
- 4. Абстрактный класс не называется
- 5. Как я могу проверить абстрактный класс, используя Espresso?
- 6. Как я могу реализовать абстрактный одноэлементный класс в Java?
- 7. Java абстрактный класс - как я могу лучше всего это решить?
- 8. Как я могу вернуть абстрактный класс с любой фабрики?
- 9. Вложенный абстрактный класс и возвращающий абстрактный класс
- 10. Как я могу использовать fillOval в качестве переменной Java Graphics?
- 11. абстрактный класс расширяет абстрактный класс в php?
- 12. Абстрактный базовый класс имеет абстрактный вложенный класс
- 13. как я наследую свой абстрактный класс?
- 14. Абстрактный класс коррекции ошибок
- 15. Абстрактный класс, класс, интерфейс
- 16. C# - Что я должен использовать, интерфейс, абстрактный класс или оба?
- 17. Могу ли я передать объект из подкласса в абстрактный класс?
- 18. Как вернуть общий абстрактный класс?
- 19. Могу ли я сделать абстрактный класс фрагмента с шаблоном построителя?
- 20. Что я должен использовать интерфейс или абстрактный класс?
- 21. php: Когда использовать абстрактный и интерфейсный класс?
- 22. Абстрактный базовый класс или класс?
- 23. Что я могу включить в C++-интерфейс (абстрактный класс)
- 24. Могу ли я реализовать абстрактный класс класса DisposeBase?
- 25. Могу ли я добавить делегатов в абстрактный класс?
- 26. Класс не абстрактный?
- 27. Как я могу использовать класс Profilebase?
- 28. Почему я могу использовать модуль как класс?
- 29. Как я могу использовать слово «класс» cakephp
- 30. Vaadin - Как я могу использовать класс UriFragmentUtility?
Вы _are_ используете класс, который наследует его. Вы просто не знаете, какой из них. – SLaks
Начните с просмотра [Живопись в AWT и Swing] (http://www.oracle.com/technetwork/java/painting-140037.html) для получения более подробной информации о процессе рисования. «Графика» является абстрактной, поскольку она зависит от физической цели, которую она использует для рисования, для рисования на изображении, экране или принтере все требует разных реализаций. – MadProgrammer
В случае экрана и принтера система создает экземпляр контекста «Graphics» на основе требуемой реализации для устройства и передает его вам, вам не нужно знать физическую реализацию, только чтобы вы могли вызовите методы «Graphics» – MadProgrammer