{"id":20573,"date":"2024-03-15T20:40:05","date_gmt":"2024-03-15T20:40:05","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/"},"modified":"2024-03-21T18:24:50","modified_gmt":"2024-03-21T18:24:50","slug":"how-is-polymorphism-implemented-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/","title":{"rendered":"How is polymorphism implemented in Java?"},"content":{"rendered":"<p>Polymorphism in Java is achieved through inheritance and method overriding.<\/p>\n<p>Firstly, a parent class needs to be defined, which includes one or more methods.<\/p>\n<p>Next, define one or more subclasses that inherit from the parent class and override the methods in the parent class.<\/p>\n<p>Abstract methods in the parent class can be defined using the keyword &#8216;abstract&#8217;, so subclasses must implement these abstract methods.<\/p>\n<p>When using polymorphism, a variable of the parent class type can be declared to reference a child class object, and methods can be called through this variable. Therefore, based on the actual type of the referenced child class object, overridden methods in the child class can be called.<\/p>\n<p>Here is a sample code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Animal<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <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\">\"Animal makes sound\"<\/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\">public<\/span> <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\">\"Dog barks\"<\/span>);\r\n    }\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\">public<\/span> <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\">\"Cat meows\"<\/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\">animal1<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Dog<\/span>();\r\n        <span class=\"hljs-type\">Animal<\/span> <span class=\"hljs-variable\">animal2<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Cat<\/span>();\r\n        \r\n        animal1.sound(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1a\"Dog barks\"<\/span>\r\n        animal2.sound(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1a\"Cat meows\"<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the above code, Animal is the parent class, and Dog and Cat are the child classes. The Animal class defines a sound() method, which is then overridden by the Dog and Cat classes respectively.<\/p>\n<p>In the main() method, animal1 and animal2 are variables of type Animal that respectively reference objects of the Dog and Cat classes. When the sound() method is called using these variables, it actually invokes the overridden method in the subclass, rather than the method in the parent class. This is the effect of polymorphism.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Polymorphism in Java is achieved through inheritance and method overriding. Firstly, a parent class needs to be defined, which includes one or more methods. Next, define one or more subclasses that inherit from the parent class and override the methods in the parent class. Abstract methods in the parent class can be defined using the [&hellip;]<\/p>\n","protected":false},"author":8,"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-20573","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 polymorphism implemented 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-polymorphism-implemented-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 polymorphism implemented in Java?\" \/>\n<meta property=\"og:description\" content=\"Polymorphism in Java is achieved through inheritance and method overriding. Firstly, a parent class needs to be defined, which includes one or more methods. Next, define one or more subclasses that inherit from the parent class and override the methods in the parent class. Abstract methods in the parent class can be defined using the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-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-15T20:40:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T18:24:50+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\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=\"William Carter\" \/>\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-polymorphism-implemented-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"How is polymorphism implemented in Java?\",\"datePublished\":\"2024-03-15T20:40:05+00:00\",\"dateModified\":\"2024-03-21T18:24:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/\"},\"wordCount\":212,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/\",\"name\":\"How is polymorphism implemented in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T20:40:05+00:00\",\"dateModified\":\"2024-03-21T18:24:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is polymorphism implemented 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\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is polymorphism implemented 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-polymorphism-implemented-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How is polymorphism implemented in Java?","og_description":"Polymorphism in Java is achieved through inheritance and method overriding. Firstly, a parent class needs to be defined, which includes one or more methods. Next, define one or more subclasses that inherit from the parent class and override the methods in the parent class. Abstract methods in the parent class can be defined using the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T20:40:05+00:00","article_modified_time":"2024-03-21T18:24:50+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"How is polymorphism implemented in Java?","datePublished":"2024-03-15T20:40:05+00:00","dateModified":"2024-03-21T18:24:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/"},"wordCount":212,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/","name":"How is polymorphism implemented in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T20:40:05+00:00","dateModified":"2024-03-21T18:24:50+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-polymorphism-implemented-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is polymorphism implemented 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\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20573","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=20573"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20573\/revisions"}],"predecessor-version":[{"id":54381,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20573\/revisions\/54381"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=20573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=20573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=20573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}