13.4.2.1 Иерархия классов Geometry
Классы геометрии определяют иерархию следующим образом:
-
Geometry(неинстанцируемый)Point(инстанцируемый)-
Curve(неинстанцируемый)-
LineString(инстанцируемый)LineLinearRing
-
-
Surface(неинстанцируемый)Polygon(инстанцируемый)
-
GeometryCollection(инстанцируемый)MultiPoint(инстанцируемый)-
MultiCurve(неинстанцируемый)MultiLineString(инстанцируемый)
-
MultiSurface(неинстанцируемый)MultiPolygon(инстанцируемый)
Создавать объекты в неинстанцируемых классах невозможно. Создавать объекты в инстанцируемых классах возможно. Все классы имеют свойства, а инстанцируемые классы могут также иметь утверждения (правила, определяющие допустимые экземпляры класса).
Geometry является базовым классом. Это абстрактный класс. Инстанцируемые подклассы Geometry ограничены геометрическими объектами нулевой, первой и второй размерности, существующими в двумерном координатном пространстве. Все инстанцируемые классы геометрии определены таким образом, что допустимые экземпляры класса геометрии топологически замкнуты (то есть все определённые геометрии включают свою границу).
Базовый класс Geometry имеет подклассы для Point, Curve, Surface и GeometryCollection:
Pointпредставляет объекты нулевой размерности.Curveпредставляет объекты первой размерности и имеет подклассLineString, с под-подклассамиLineиLinearRing.Surfaceпредназначен для объектов второй размерности и имеет подклассPolygon.GeometryCollectionимеет специализированные классы коллекций нулевой, первой и второй размерности под названиемMultiPoint,MultiLineStringиMultiPolygonдля моделирования геометрий, соответствующих коллекциямPoints,LineStringsиPolygonsсоответственно.MultiCurveиMultiSurfaceпредставлены как абстрактные суперклассы, которые обобщают интерфейсы коллекций для обработкиCurvesиSurfaces.
Geometry, Curve, Surface, MultiCurve и MultiSurface определены как неинстанцируемые классы. Они определяют общий набор методов для своих подклассов и включены для расширяемости.
Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString и MultiPolygon являются инстанцируемыми классами.
© 2025 Oracle
Licensed under the GPLv2 License.