{"id":7402,"date":"2024-03-14T05:29:31","date_gmt":"2024-03-14T05:29:31","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/"},"modified":"2025-08-02T15:46:16","modified_gmt":"2025-08-02T15:46:16","slug":"what-is-the-usage-of-abstract-in-php","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/","title":{"rendered":"PHP Abstract Classes Explained: Usage Guide"},"content":{"rendered":"<p>In PHP, &#8216;abstract&#8217; is a keyword used to declare an abstract class or method. An abstract class cannot be instantiated and can only be inherited, and it can contain abstract methods. Abstract methods are methods without specific implementations that need to be inherited and implemented by subclasses.<\/p>\n<p>\u539f\u6587\uff1a\u6211\u559c\u6b22\u53bb\u6d77\u8fb9\u6563\u6b65\u3002<\/p>\n<p>Option: I enjoy taking a walk by the seaside.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Shape<\/span> <\/span>{\r\n    <span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">calculateArea<\/span>(<span class=\"hljs-params\"><\/span>)<\/span>;\r\n}\r\n\r\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Circle<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title\">Shape<\/span> <\/span>{\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-variable\">$radius<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__construct<\/span>(<span class=\"hljs-params\"><span class=\"hljs-variable\">$radius<\/span><\/span>) <\/span>{\r\n        <span class=\"hljs-variable language_\">$this<\/span>-&gt;radius = <span class=\"hljs-variable\">$radius<\/span>;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">calculateArea<\/span>(<span class=\"hljs-params\"><\/span>) <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-title function_ invoke__\">pi<\/span>() * <span class=\"hljs-variable language_\">$this<\/span>-&gt;radius * <span class=\"hljs-variable language_\">$this<\/span>-&gt;radius;\r\n    }\r\n}\r\n\r\n<span class=\"hljs-variable\">$circle<\/span> = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Circle<\/span>(<span class=\"hljs-number\">5<\/span>);\r\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$circle<\/span>-&gt;<span class=\"hljs-title function_ invoke__\">calculateArea<\/span>(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa: 78.54<\/span>\r\n<\/code><\/pre>\n<p>In the example above, the Shape class is an abstract class that contains an abstract method calculateArea(). The Circle class inherits from the Shape class and implements the calculateArea() method to calculate the area of a circle.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PHP, &#8216;abstract&#8217; is a keyword used to declare an abstract class or method. An abstract class cannot be instantiated and can only be inherited, and it can contain abstract methods. Abstract methods are methods without specific implementations that need to be inherited and implemented by subclasses. \u539f\u6587\uff1a\u6211\u559c\u6b22\u53bb\u6d77\u8fb9\u6563\u6b65\u3002 Option: I enjoy taking a walk by [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[9446,9445,9447,2926,690],"class_list":["post-7402","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-abstract-class-php","tag-php-abstract","tag-php-methods","tag-php-oop","tag-php-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP Abstract Classes Explained: Usage Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to use &#039;abstract&#039; in PHP for creating abstract classes and methods. Complete guide with examples for better OOP implementation.\" \/>\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.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP Abstract Classes Explained: Usage Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to use &#039;abstract&#039; in PHP for creating abstract classes and methods. Complete guide with examples for better OOP implementation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T05:29:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-02T15:46:16+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"PHP Abstract Classes Explained: Usage Guide\",\"datePublished\":\"2024-03-14T05:29:31+00:00\",\"dateModified\":\"2025-08-02T15:46:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\"},\"wordCount\":99,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"abstract class PHP\",\"PHP abstract\",\"PHP methods\",\"PHP OOP\",\"PHP programming\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\",\"name\":\"PHP Abstract Classes Explained: Usage Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T05:29:31+00:00\",\"dateModified\":\"2025-08-02T15:46:16+00:00\",\"description\":\"Learn how to use 'abstract' in PHP for creating abstract classes and methods. Complete guide with examples for better OOP implementation.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP Abstract Classes Explained: Usage Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP Abstract Classes Explained: Usage Guide - Blog - Silicon Cloud","description":"Learn how to use 'abstract' in PHP for creating abstract classes and methods. Complete guide with examples for better OOP implementation.","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.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/","og_locale":"en_US","og_type":"article","og_title":"PHP Abstract Classes Explained: Usage Guide","og_description":"Learn how to use 'abstract' in PHP for creating abstract classes and methods. Complete guide with examples for better OOP implementation.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T05:29:31+00:00","article_modified_time":"2025-08-02T15:46:16+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"PHP Abstract Classes Explained: Usage Guide","datePublished":"2024-03-14T05:29:31+00:00","dateModified":"2025-08-02T15:46:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/"},"wordCount":99,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["abstract class PHP","PHP abstract","PHP methods","PHP OOP","PHP programming"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/","name":"PHP Abstract Classes Explained: Usage Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T05:29:31+00:00","dateModified":"2025-08-02T15:46:16+00:00","description":"Learn how to use 'abstract' in PHP for creating abstract classes and methods. Complete guide with examples for better OOP implementation.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-abstract-in-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP Abstract Classes Explained: Usage Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/7402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=7402"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/7402\/revisions"}],"predecessor-version":[{"id":152183,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/7402\/revisions\/152183"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=7402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=7402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=7402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}