11.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.