{"id":22929,"date":"2024-03-16T00:31:10","date_gmt":"2024-03-16T00:31:10","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/"},"modified":"2024-03-22T00:03:08","modified_gmt":"2024-03-22T00:03:08","slug":"how-is-the-abstract-keyword-used-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/","title":{"rendered":"How is the &#8220;abstract&#8221; keyword used in Java?"},"content":{"rendered":"<p>In Java, the abstract keyword is used to define abstract classes and methods.<\/p>\n<p>An abstract class is a class that cannot be instantiated, but can only be inherited. Abstract classes are typically used to define common characteristics and behaviors, and can contain abstract methods. Abstract methods are methods without concrete implementations, only method declarations, with the specific implementation needing to be completed in the subclass. Abstract classes can also contain other non-abstract methods and properties.<\/p>\n<p>Use the abstract keyword to define an abstract class.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">AbstractClass<\/span> {\r\n    <span class=\"hljs-comment\">\/\/ \u62bd\u8c61\u65b9\u6cd5<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">abstractMethod<\/span><span class=\"hljs-params\">()<\/span>;\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u975e\u62bd\u8c61\u65b9\u6cd5<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">nonAbstractMethod<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u5177\u4f53\u5b9e\u73b0<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Abstract methods do not require concrete implementation, only the declaration of the method.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">abstractMethod<\/span><span class=\"hljs-params\">()<\/span>;\r\n<\/code><\/pre>\n<p>Abstract classes cannot be instantiated and can only be used through inheritance. When a subclass inherits an abstract class, it must implement all the abstract methods in the abstract class, or the subclass must also be defined as an abstract class.<\/p>\n<p>Example of using abstract class and abstract methods:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Animal<\/span> {\r\n    <span class=\"hljs-keyword\">abstract<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">sound<\/span><span class=\"hljs-params\">()<\/span>;\r\n}\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Cat<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">Animal<\/span> {\r\n    <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">sound<\/span><span class=\"hljs-params\">()<\/span> {\r\n        System.out.println(<span class=\"hljs-string\">\"Meow\"<\/span>);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Dog<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">Animal<\/span> {\r\n    <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">sound<\/span><span class=\"hljs-params\">()<\/span> {\r\n        System.out.println(<span class=\"hljs-string\">\"Woof\"<\/span>);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Main<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        <span class=\"hljs-type\">Animal<\/span> <span class=\"hljs-variable\">cat<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Cat<\/span>();\r\n        <span class=\"hljs-type\">Animal<\/span> <span class=\"hljs-variable\">dog<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Dog<\/span>();\r\n        \r\n        cat.sound(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa \"Meow\"<\/span>\r\n        dog.sound(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa \"Woof\"<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In Java, the abstract keyword is used to define abstract classes and methods. An abstract class is a class that cannot be instantiated, but can only be inherited. Abstract classes are typically used to define common characteristics and behaviors, and can contain abstract methods. Abstract methods are methods without concrete implementations, only method declarations, with [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-22929","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"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>How is the &quot;abstract&quot; keyword used in Java? - Blog - Silicon Cloud<\/title>\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\/how-is-the-abstract-keyword-used-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How is the &quot;abstract&quot; keyword used in Java?\" \/>\n<meta property=\"og:description\" content=\"In Java, the abstract keyword is used to define abstract classes and methods. An abstract class is a class that cannot be instantiated, but can only be inherited. Abstract classes are typically used to define common characteristics and behaviors, and can contain abstract methods. Abstract methods are methods without concrete implementations, only method declarations, with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/\" \/>\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-16T00:31:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T00:03:08+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\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=\"Isabella Edwards\" \/>\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\/how-is-the-abstract-keyword-used-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"How is the &#8220;abstract&#8221; keyword used in Java?\",\"datePublished\":\"2024-03-16T00:31:10+00:00\",\"dateModified\":\"2024-03-22T00:03:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/\"},\"wordCount\":154,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/\",\"name\":\"How is the \\\"abstract\\\" keyword used in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T00:31:10+00:00\",\"dateModified\":\"2024-03-22T00:03:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is the &#8220;abstract&#8221; keyword used in Java?\"}]},{\"@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\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is the \"abstract\" keyword used in Java? - Blog - Silicon Cloud","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\/how-is-the-abstract-keyword-used-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How is the \"abstract\" keyword used in Java?","og_description":"In Java, the abstract keyword is used to define abstract classes and methods. An abstract class is a class that cannot be instantiated, but can only be inherited. Abstract classes are typically used to define common characteristics and behaviors, and can contain abstract methods. Abstract methods are methods without concrete implementations, only method declarations, with [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T00:31:10+00:00","article_modified_time":"2024-03-22T00:03:08+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"How is the &#8220;abstract&#8221; keyword used in Java?","datePublished":"2024-03-16T00:31:10+00:00","dateModified":"2024-03-22T00:03:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/"},"wordCount":154,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/","name":"How is the \"abstract\" keyword used in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T00:31:10+00:00","dateModified":"2024-03-22T00:03:08+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-abstract-keyword-used-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is the &#8220;abstract&#8221; keyword used in Java?"}]},{"@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\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22929","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\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=22929"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22929\/revisions"}],"predecessor-version":[{"id":56878,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22929\/revisions\/56878"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=22929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=22929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=22929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}