{"id":136670,"date":"2024-09-26T14:44:18","date_gmt":"2024-09-26T09:14:18","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?page_id=136670"},"modified":"2024-09-26T14:44:19","modified_gmt":"2024-09-26T09:14:19","slug":"abstract-classes","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/","title":{"rendered":"Abstract Classes"},"content":{"rendered":"\n<p>Abstract classes are a fundamental concept in object-oriented programming that provide a blueprint for other classes. They cannot be instantiated directly, but they can be used as base classes for derived classes. Abstract classes are often used to define common properties and methods that derived classes must implement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Defining Abstract Classes<\/strong><\/h2>\n\n\n\n<p>To define an abstract class in Carbon, you use the <code>abstract<\/code> keyword before the <code>class<\/code> keyword. Abstract methods within an abstract class are declared using the <code>abstract<\/code> keyword without a body.<\/p>\n\n\n\n<p>Code snippet<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>abstract class Shape {\n  abstract func area() -&gt; double\n  abstract func perimeter() -&gt; double\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Derived Classes<\/strong><\/h2>\n\n\n\n<p>Derived classes that inherit from an abstract class must implement all of the abstract methods defined in the base class.<\/p>\n\n\n\n<p>Code snippet<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Circle: Shape {\n  var radius: double\n\n  init(radius: double) {\n    self.radius = radius\n  }\n\n  override func area() -&gt; double {\n    return Double.pi * radius * radius\n  }\n\n  override func perimeter() -&gt; double {\n    return &nbsp;  2 * Double.pi * radius\n  }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Benefits of Abstract Classes<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Code Reusability:<\/strong> Abstract classes provide a common framework for derived classes, promoting code reuse.<\/li>\n\n\n\n<li><strong>Enforcement of Contracts:<\/strong> Abstract classes define a contract that derived classes must adhere to, ensuring consistent behavior.<\/li>\n\n\n\n<li><strong>Flexibility:<\/strong> Abstract classes allow for polymorphism, enabling you to treat objects of different derived classes as if they were of the same type.<\/li>\n\n\n\n<li><strong>Design Patterns:<\/strong> Abstract classes are essential for implementing design patterns like the Template Method and Factory Method.<\/li>\n<\/ul>\n\n\n\n<p><strong>Key Points:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Abstract classes cannot be instantiated directly.<\/li>\n\n\n\n<li>Abstract classes must contain at least one abstract method.<\/li>\n\n\n\n<li>Derived classes must implement all abstract methods defined in the base class.<\/li>\n\n\n\n<li>Abstract classes are useful for defining common interfaces and promoting code reusability.<\/li>\n<\/ul>\n\n\n\n<p>By understanding and using abstract classes effectively, you can create more flexible, maintainable, and well-structured Carbon programs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abstract classes are a fundamental concept in object-oriented programming that provide a blueprint for other classes. They cannot be instantiated directly, but they can be used as base classes for derived classes. Abstract classes are often used to define common properties and methods that derived classes must implement. Defining Abstract Classes To define an abstract&#8230;<\/p>\n","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-136670","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Abstract Classes - Tutorial<\/title>\n<meta name=\"description\" content=\"Learn about abstract classes in OOP, a blueprint for creating subclasses, allowing you to define methods without 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.vskills.in\/certification\/tutorial\/abstract-classes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Abstract Classes - Tutorial\" \/>\n<meta property=\"og:description\" content=\"Learn about abstract classes in OOP, a blueprint for creating subclasses, allowing you to define methods without implementation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-26T09:14:19+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/\",\"name\":\"Abstract Classes - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2024-09-26T09:14:18+00:00\",\"dateModified\":\"2024-09-26T09:14:19+00:00\",\"description\":\"Learn about abstract classes in OOP, a blueprint for creating subclasses, allowing you to define methods without implementation.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Abstract Classes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Abstract Classes - Tutorial","description":"Learn about abstract classes in OOP, a blueprint for creating subclasses, allowing you to define methods without 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.vskills.in\/certification\/tutorial\/abstract-classes\/","og_locale":"en_US","og_type":"article","og_title":"Abstract Classes - Tutorial","og_description":"Learn about abstract classes in OOP, a blueprint for creating subclasses, allowing you to define methods without implementation.","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-09-26T09:14:19+00:00","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/","name":"Abstract Classes - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2024-09-26T09:14:18+00:00","dateModified":"2024-09-26T09:14:19+00:00","description":"Learn about abstract classes in OOP, a blueprint for creating subclasses, allowing you to define methods without implementation.","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/abstract-classes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Abstract Classes"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/136670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=136670"}],"version-history":[{"count":1,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/136670\/revisions"}],"predecessor-version":[{"id":136679,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/136670\/revisions\/136679"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=136670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=136670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=136670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}