{"id":8852,"date":"2026-08-28T07:33:38","date_gmt":"2026-08-28T07:33:38","guid":{"rendered":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/"},"modified":"2026-10-09T04:20:36","modified_gmt":"2026-10-09T04:20:36","slug":"mastering-uml-generalization-abstract-classes-visual-paradigm","status":"publish","type":"gallery","link":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/","title":{"rendered":"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.visual-paradigm.com\/servlet\/editor-content\/guide\/introduction-to-class-diagrams\/sites\/7\/2026\/05\/img_6a016ab68901e.png\" alt=\"UML class diagram illustrating generalization and abstract class inheritance\" title=\"UML class diagram illustrating generalization and abstract class inheritance\" data-fifu-alt=\"UML class diagram illustrating generalization and abstract class inheritance\" fifu-alt=\"UML class diagram illustrating generalization and abstract class inheritance\" style=\"max-width: 100%; height: auto;\" \/><\/p>\n<p>In the realm of software engineering and system architecture, organizing code and data into logical hierarchies is essential for maintainability and scalability. This tutorial dives deep into two critical concepts found in Unified Modeling Language (UML) class diagrams: <strong>Generalization<\/strong> (often referred to as inheritance) and <strong>Abstract Classes<\/strong>.<\/p>\n<p>By understanding how these structures function, you can design systems that reduce redundancy and enforce strict architectural rules. We will also explore how modern AI-driven tooling, specifically <strong>Visual Paradigm<\/strong> and <strong>VPasCode<\/strong>, can automate these complex modeling tasks.<\/p>\n<h2>Understanding Generalization: The &#8220;Is A&#8221; Relationship<\/h2>\n<p>Generalization is the fundamental mechanism in object-oriented programming that allows for code reuse. It represents a semantic relationship where one class (the <strong>subclass<\/strong> or child) is a specialized version of another class (the <strong>superclass<\/strong> or parent).<\/p>\n<p>As illustrated in the provided diagram under &#8220;Core Generalization,&#8221; this relationship is strictly an <strong>&#8220;is a&#8221;<\/strong> relationship. This means:<\/p>\n<ul>\n<li>A <code>Lecturer<\/code> <strong>is a<\/strong> <code>Person<\/code>.<\/li>\n<li>A <code>ResearchAssociate<\/code> <strong>is a<\/strong> <code>Person<\/code>.<\/li>\n<li>An <code>AdministrativeStaff<\/code> <strong>is a<\/strong> <code>Person<\/code>.<\/li>\n<\/ul>\n<h3>How It Works<\/h3>\n<p>When a subclass inherits from a superclass, it automatically acquires all visible attributes (data) and operations (methods) defined in the parent class. This eliminates the need to rewrite common code for every specific role within your system.<\/p>\n<p>In the diagram, the <code>Person<\/code> class acts as the general template. The solid line with a hollow triangle pointing to <code>Person<\/code> is the standard UML notation for Generalization. It signifies that the specific roles below it are direct implementations of the abstract concept of a &#8220;Person.&#8221;<\/p>\n<h2>The Power of Abstract Classes<\/h2>\n<p>While generalization allows us to group things together, sometimes we want to define a group that <em>cannot<\/em> exist in the real world on its own. This is where <strong>Abstract Classes<\/strong> come into play.<\/p>\n<h3>Defining the Abstract Class<\/h3>\n<p>An abstract class is a blueprint for other classes. It is labeled in UML with the tag <code>{abstract}<\/code> or by writing the class name in <em>italics<\/em>. As shown in the &#8220;Abstract Class&#8221; section of the diagram:<\/p>\n<ul>\n<li>The <code>Person<\/code> class is marked as <em>Abstract<\/em>.<\/li>\n<li>It contains common attributes like <code>+name: String<\/code> and <code>#age: Int<\/code>.<\/li>\n<li>Crucially, it <strong>cannot be instantiated<\/strong>. You cannot create a raw object called <code>new Person()<\/code>.<\/li>\n<\/ul>\n<h3>Why Use Abstract Classes?<\/h3>\n<p>Imagine trying to instantiate a generic &#8220;Person.&#8221; Does it make sense? In most systems, no. You don&#8217;t have a &#8220;Person&#8221; sitting at your desk; you have a &#8220;Lecturer&#8221; or an &#8220;AdministrativeStaff.&#8221;<\/p>\n<p>The diagram highlights that the <code>Person<\/code> class exists solely to <strong>group common features<\/strong>. By marking it as abstract, the system architecture enforces the rule that specific implementations (the subclasses) must be created to handle the actual logic. This ensures data integrity and prevents the creation of invalid objects.<\/p>\n<h2>Supplementary Note: Recommended Tooling for UML Modeling<\/h2>\n<p>Creating complex UML diagrams manually can be time-consuming and prone to syntax errors. Fortunately, modern development environments have evolved to include intelligent assistance. For this tutorial, we recommend the following integrated approach:<\/p>\n<h3>Visual Paradigm UML + AI + VPasCode<\/h3>\n<p><strong>Visual Paradigm<\/strong> is a powerful enterprise-grade modeling tool. By integrating <strong>AI<\/strong> and <strong>VPasCode<\/strong> (Visual Paradigm Scripting), you can streamline your architecture design process:<\/p>\n<ol>\n<li><strong>AI-Assisted Modeling:<\/strong> Use AI features to automatically generate class diagrams based on natural language descriptions. You can describe the &#8220;Person&#8221; hierarchy, and the AI can suggest the correct generalization structure.<\/li>\n<li><strong>VPasCode Automation:<\/strong> For developers who prefer code-first approaches, VPasCode allows you to define your UML models using scripting. You can programmatically define the <code>Person<\/code> class as abstract and link the subclasses, ensuring that your diagram matches your actual codebase perfectly.<\/li>\n<li><strong>Consistency:<\/strong> This toolchain ensures that your diagrams (like the one above) remain synchronized with your source code, reducing the &#8220;documentation debt&#8221; that often plagues software projects.<\/li>\n<\/ol>\n<p>By mastering these concepts and leveraging the right tools, you can build robust, scalable systems that are easy to understand and maintain.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.<\/p>\n","protected":false},"author":1,"featured_media":8853,"template":"","meta":{"_yoast_wpseo_title":"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling","_yoast_wpseo_metadesc":"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.","inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"source_url":"https:\/\/www.visual-paradigm.com\/guide\/introduction-to-class-diagrams\/","source_h1_title":"Introduction to Class Diagrams","fifu_image_url":"","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"d27f8fa29b163b7bacf3a3d286201707552abc4664cfdeda6a4c37c558be9df6"},"asset-category":[21],"class_list":["post-8852","gallery","type-gallery","status-publish","has-post-thumbnail","hentry","asset-category-uml"],"source_url":"https:\/\/www.visual-paradigm.com\/guide\/introduction-to-class-diagrams\/","source_h1_title":"Introduction to Class Diagrams","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"d27f8fa29b163b7bacf3a3d286201707552abc4664cfdeda6a4c37c558be9df6","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling<\/title>\n<meta name=\"description\" content=\"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling\" \/>\n<meta property=\"og:description\" content=\"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn VP\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-09T04:20:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.visual-paradigm.com\/servlet\/editor-content\/guide\/introduction-to-class-diagrams\/sites\/7\/2026\/05\/img_6a016ab68901e.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/\",\"url\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/\",\"name\":\"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.visual-paradigm.com\\\/servlet\\\/editor-content\\\/guide\\\/introduction-to-class-diagrams\\\/sites\\\/7\\\/2026\\\/05\\\/img_6a016ab68901e.png\",\"datePublished\":\"2026-08-28T07:33:38+00:00\",\"dateModified\":\"2026-10-09T04:20:36+00:00\",\"description\":\"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.visual-paradigm.com\\\/servlet\\\/editor-content\\\/guide\\\/introduction-to-class-diagrams\\\/sites\\\/7\\\/2026\\\/05\\\/img_6a016ab68901e.png\",\"contentUrl\":\"https:\\\/\\\/www.visual-paradigm.com\\\/servlet\\\/editor-content\\\/guide\\\/introduction-to-class-diagrams\\\/sites\\\/7\\\/2026\\\/05\\\/img_6a016ab68901e.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/gallery\\\/mastering-uml-generalization-abstract-classes-visual-paradigm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/#website\",\"url\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/\",\"name\":\"Learn VP\",\"description\":\"Learn VP\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/#organization\",\"name\":\"Learn VP\",\"url\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/08\\\/cropped-Gemini_Generated_Image_n6bgztn6bgztn6bg-clean-e1787131920742.png\",\"contentUrl\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/13\\\/2026\\\/08\\\/cropped-Gemini_Generated_Image_n6bgztn6bgztn6bg-clean-e1787131920742.png\",\"width\":463,\"height\":404,\"caption\":\"Learn VP\"},\"image\":{\"@id\":\"https:\\\/\\\/www.learn-vp.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling","description":"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/","og_locale":"vi_VN","og_type":"article","og_title":"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling","og_description":"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.","og_url":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/","og_site_name":"Learn VP","article_modified_time":"2026-10-09T04:20:36+00:00","og_image":[{"url":"https:\/\/www.visual-paradigm.com\/servlet\/editor-content\/guide\/introduction-to-class-diagrams\/sites\/7\/2026\/05\/img_6a016ab68901e.png","width":1024,"height":1024,"type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"3 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/","url":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/","name":"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling","isPartOf":{"@id":"https:\/\/www.learn-vp.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/#primaryimage"},"image":{"@id":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.visual-paradigm.com\/servlet\/editor-content\/guide\/introduction-to-class-diagrams\/sites\/7\/2026\/05\/img_6a016ab68901e.png","datePublished":"2026-08-28T07:33:38+00:00","dateModified":"2026-10-09T04:20:36+00:00","description":"Master UML generalization and abstract classes to reduce code redundancy. Discover how AI tools like Visual Paradigm automate complex object-oriented modeling tasks.","breadcrumb":{"@id":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/#primaryimage","url":"https:\/\/www.visual-paradigm.com\/servlet\/editor-content\/guide\/introduction-to-class-diagrams\/sites\/7\/2026\/05\/img_6a016ab68901e.png","contentUrl":"https:\/\/www.visual-paradigm.com\/servlet\/editor-content\/guide\/introduction-to-class-diagrams\/sites\/7\/2026\/05\/img_6a016ab68901e.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.learn-vp.com\/vn\/gallery\/mastering-uml-generalization-abstract-classes-visual-paradigm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.learn-vp.com\/vn\/"},{"@type":"ListItem","position":2,"name":"Mastering Object-Oriented Modeling: Generalization, Abstract Classes, and Tooling"}]},{"@type":"WebSite","@id":"https:\/\/www.learn-vp.com\/vn\/#website","url":"https:\/\/www.learn-vp.com\/vn\/","name":"Learn VP","description":"Learn VP","publisher":{"@id":"https:\/\/www.learn-vp.com\/vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.learn-vp.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.learn-vp.com\/vn\/#organization","name":"Learn VP","url":"https:\/\/www.learn-vp.com\/vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.learn-vp.com\/vn\/#\/schema\/logo\/image\/","url":"https:\/\/www.learn-vp.com\/vn\/wp-content\/uploads\/sites\/13\/2026\/08\/cropped-Gemini_Generated_Image_n6bgztn6bgztn6bg-clean-e1787131920742.png","contentUrl":"https:\/\/www.learn-vp.com\/vn\/wp-content\/uploads\/sites\/13\/2026\/08\/cropped-Gemini_Generated_Image_n6bgztn6bgztn6bg-clean-e1787131920742.png","width":463,"height":404,"caption":"Learn VP"},"image":{"@id":"https:\/\/www.learn-vp.com\/vn\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/gallery\/8852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/gallery"}],"about":[{"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/types\/gallery"}],"author":[{"embeddable":true,"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/users\/1"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/media\/8853"}],"wp:attachment":[{"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/media?parent=8852"}],"wp:term":[{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.learn-vp.com\/vn\/wp-json\/wp\/v2\/asset-category?post=8852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}