{"id":25520712,"date":"2022-04-15T11:15:16","date_gmt":"2022-04-15T05:45:16","guid":{"rendered":"https:\/\/entri.app\/blog\/?p=25520712"},"modified":"2022-11-23T20:38:46","modified_gmt":"2022-11-23T15:08:46","slug":"understanding-polymorphism-in-java","status":"publish","type":"post","link":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/","title":{"rendered":"Understanding Polymorphism In Java"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69edd27d9426a\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69edd27d9426a\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#Polymorphism_in_Java\" >Polymorphism in Java<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#Types_of_Polymorphism\" >Types of Polymorphism<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#1_Compile-time_Polymorphism\" >1. Compile-time Polymorphism:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#2_Run-time_Polymorphism\" >2. Run-time Polymorphism:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#Usages_and_Advantages_of_Polymorphism\" >Usages and Advantages of Polymorphism<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#Differences_Between_Compile-time_and_Run-time_Polymorphism\" >Differences Between Compile-time and Run-time Polymorphism<\/a><\/li><\/ul><\/nav><\/div>\n<p>&nbsp;<\/p>\n<p>What is Polymorphism? In simple words, it means<strong>\u00a0&#8220;Many Forms&#8221;<\/strong>. What this means in the object-oriented programming language like Java is that, a single line of code (Here, a single line of code can refer to the name of a method, or a variable, etc.) can have multiple meanings, and which meaning is to be used depends upon various factors.<\/p>\n<p>Java supports run-time polymorphism by dynamically dispatching methods at run time through method overriding. For this type of polymorphism, method invocations are resolved at run time by the JVM and not at the compile time. Since the run-time polymorphism occurs dynamically, it is also called dynamic polymorphism or late binding.<\/p>\n<p>Note: The print () method is also an example of polymorphism. It is used to print values of different types like char, int, string, etc. We can achieve polymorphism in Java using the following ways: During inheritance in Java, if the same method is present in both the superclass and the subclass.<\/p>\n<h3><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25494072 size-full\" src=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square.png\" alt=\"\" width=\"345\" height=\"345\" srcset=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square.png 345w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-300x300.png 300w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-150x150.png 150w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-24x24.png 24w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-48x48.png 48w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-96x96.png 96w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-75x75.png 75w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/a><\/h3>\n<h2 class=\"h1\"><span class=\"ez-toc-section\" id=\"Polymorphism_in_Java\"><\/span><strong>Polymorphism in Java<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Polymorphism in Java<\/strong>\u00a0is a concept by which we can perform a\u00a0<em>single action in different ways<\/em>. Polymorphism is derived from 2 Greek words: poly and morphs. The word &#8220;poly&#8221; means many and &#8220;morphs&#8221; means forms. So polymorphism means many forms.<\/p>\n<p>There are two types of polymorphism in Java: compile-time polymorphism and runtime polymorphism. We can perform polymorphism in java by method overloading and method overriding.<\/p>\n<p>If you overload a static method in Java, it is the example of compile time polymorphism.<\/p>\n<h4 style=\"text-align: center;\"><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\"><strong>Learn to code from industry experts! Enroll here<\/strong><\/a><\/h4>\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"Types_of_Polymorphism\"><\/span><strong>Types of Polymorphism<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"western\" lang=\"en-US\">Java supports two types of polymorphism namely:<\/p>\n<div class=\"code-block code-block-5 ai-viewport-1 ai-viewport-2\"><\/div>\n<ol>\n<li class=\"western\">Compile-time polymorphism<\/li>\n<li class=\"western\">Run-time polymorphism.<\/li>\n<\/ol>\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"1_Compile-time_Polymorphism\"><\/span><strong>1. Compile-time Polymorphism:<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"western\" lang=\"en-US\">Compile-time polymorphism is the type of polymorphism occurs when the compiler compiles a program. Java supports compile-time polymorphism through method overloading. The other names of Compile-time polymorphism are static polymorphism or early binding.<\/p>\n<p class=\"western\" lang=\"en-US\">Polymorphism occurs in method overloading because method overloading allows access to different methods through the same interface.<\/p>\n<p class=\"western\" lang=\"en-US\">In method overloading, two or more methods in a class can use the same name as long as their parameter declarations are different.<\/p>\n<p class=\"western\" lang=\"en-US\">When the compiler encounters a call to an overloaded method, it identifies the correct version of the overloaded method by comparing the type and the number of arguments.<\/p>\n<p class=\"western\" lang=\"en-US\"><strong>Example:<\/strong><\/p>\n<div class=\"code-toolbar\">\n<pre class=\" language-java\"><code class=\" language-java\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">OverloadingDemo<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">meth<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> value<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"int value : \"<\/span> <span class=\"token operator\">+<\/span> value<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">meth<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> name<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"String value : \"<\/span> <span class=\"token operator\">+<\/span> name<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">meth<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> value<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">String<\/span> name<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Name with value : \"<\/span> <span class=\"token operator\">+<\/span> value<span class=\"token operator\">+<\/span><span class=\"token string\">\" \"<\/span><span class=\"token operator\">+<\/span>name<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">OverloadingDemo<\/span> demo <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">OverloadingDemo<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        demo<span class=\"token punctuation\">.<\/span><span class=\"token function\">meth<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        demo<span class=\"token punctuation\">.<\/span><span class=\"token function\">meth<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"online tutorials point\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        demo<span class=\"token punctuation\">.<\/span><span class=\"token function\">meth<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">20<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"Overloading Demo\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<pre class=\" language-bash\"><code class=\" language-bash\">int value <span class=\"token builtin class-name\">:<\/span> <span class=\"token number\">10<\/span>\r\nString value <span class=\"token builtin class-name\">:<\/span> online tutorials point\r\nName with value <span class=\"token builtin class-name\">:<\/span> <span class=\"token number\">20<\/span> Overloading Demo<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"2_Run-time_Polymorphism\"><\/span><strong>2. Run-time Polymorphism:<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"western\" lang=\"en-US\">Run-time Polymorphism is the type of polymorphism that occurs dynamically when a program executes. Java supports run-time polymorphism by dynamically dispatching methods at run time through method overriding.<\/p>\n<div class=\"code-block code-block-9 ai-viewport-1 ai-viewport-2\"><\/div>\n<p class=\"western\" lang=\"en-US\">For this type of polymorphism, method invocations are resolved at run time by the JVM and not at the compile time.<\/p>\n<p class=\"western\" lang=\"en-US\">Since the run-time polymorphism occurs dynamically, it is also called dynamic polymorphism or late binding.<\/p>\n<pre class=\" language-java\"><code class=\" language-java\"><span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">Car<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">void<\/span> <span class=\"token function\">speed<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> speed<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Maruti<\/span> <span class=\"token keyword\">implements<\/span> <span class=\"token class-name\">Car<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">speed<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> speed<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Maruti Speed is :\"<\/span> <span class=\"token operator\">+<\/span> speed<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Tata<\/span> <span class=\"token keyword\">implements<\/span> <span class=\"token class-name\">Car<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">speed<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> speed<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Tata Speed is :\"<\/span> <span class=\"token operator\">+<\/span> speed<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">PolymorphismDemo<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token class-name\">Car<\/span> car<span class=\"token punctuation\">;<\/span>\r\n        car <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Maruti<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        car<span class=\"token punctuation\">.<\/span><span class=\"token function\">speed<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        car <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Tata<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n        car<span class=\"token punctuation\">.<\/span><span class=\"token function\">speed<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">300<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}\r\n<\/span><\/code><\/pre>\n<p lang=\"en-US\"><strong>Output:<\/strong><\/p>\n<pre class=\" language-java\"><code class=\" language-java\"><\/code><\/pre>\n<div class=\"filename\">Console<\/div>\n<pre class=\" language-java\"><code class=\" language-java\"><\/code><\/pre>\n<div class=\"code-toolbar\">\n<pre class=\" language-bash\"><code class=\" language-bash\">Maruti Speed is :200 \r\nTata Speed is :300<\/code><\/pre>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<pre class=\" language-java\"><code class=\" language-java\"><\/code><\/pre>\n<p class=\"western\" lang=\"en-US\">In the above example \u2013 Maruthi and Tata are two different classes, and both were two different implementations of the Car Interface. In other words, these two classes are types of Car.<\/p>\n<p lang=\"en-US\">Since because these two classes are the same type, we can refer these two objects to a single type called Car as above. Here, based on the type of the object being assigned with the reference, polymorphism is resolved at runtime.<\/p>\n<h4 style=\"text-align: center;\"><strong><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\">Grab the opportunity to learn Java with Entri! Click Here<\/a><\/strong><\/h4>\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"Usages_and_Advantages_of_Polymorphism\"><\/span><strong>Usages and Advantages of Polymorphism<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<p lang=\"en-US\">Method overloading allows methods that perform similar or closely related functions to be accessed through a common name. For instance, a program performs operations on an array of numbers which can be int, float, or double type. Method overloading allows you to define three methods with the same name and different types of parameters to handle the array of operations.<\/p>\n<\/li>\n<li>\n<p lang=\"en-US\">Constructors allowing different ways to initialize objects of a class can implement method overloading. This enables you to define multiple constructors for handling different types of initializations.<\/p>\n<\/li>\n<li>\n<p lang=\"en-US\">Method overriding allows a subclass to use all the general definitions that a superclass provides and add specialized definitions through overridden methods.<\/p>\n<\/li>\n<li>\n<p lang=\"en-US\">Method overriding works together with inheritance to enable code-reuse of existing classes without the need for re-compilation.<\/p>\n<\/li>\n<\/ul>\n<h2 class=\"western\"><span class=\"ez-toc-section\" id=\"Differences_Between_Compile-time_and_Run-time_Polymorphism\"><\/span><strong>Differences Between Compile-time and Run-time Polymorphism<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<p lang=\"en-US\">Method overloading occurs at Compile-time whereas method overriding occurs at Run-time.<\/p>\n<\/li>\n<li>\n<p lang=\"en-US\">Method overloading occurs when the type signatures of the two methods are different whereas method overriding occurs only when the type signatures of the two methods are the same.<\/p>\n<\/li>\n<li>\n<p lang=\"en-US\">In method overloading, the compiler calls the correct method by comparing the type signatures. However, in method overriding, the JVM determines the correct method based on the object that the invoking variable is referring to.<\/p>\n<\/li>\n<li>\n<p lang=\"en-US\">Method overloading is possible on methods with private, static, and final access modifiers. On the other hand, method overriding is not possible on these access modifiers.<\/p>\n<\/li>\n<\/ul>\n<h3><a href=\"https:\/\/bit.ly\/3ELmCiA\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25494072 size-full\" src=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square.png\" alt=\"\" width=\"345\" height=\"345\" srcset=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square.png 345w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-300x300.png 300w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-150x150.png 150w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-24x24.png 24w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-48x48.png 48w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-96x96.png 96w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2021\/10\/Web-Development-Square-75x75.png 75w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/a><\/h3>\n<pre class=\" language-java\"><code class=\" language-java\"><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; What is Polymorphism? In simple words, it means\u00a0&#8220;Many Forms&#8221;. What this means in the object-oriented programming language like Java is that, a single line of code (Here, a single line of code can refer to the name of a method, or a variable, etc.) can have multiple meanings, and which meaning is to be [&hellip;]<\/p>\n","protected":false},"author":111,"featured_media":25520944,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[802,1882],"tags":[],"class_list":["post-25520712","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-java-programming"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Polymorphism In Java - Entri Blog<\/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:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Polymorphism In Java - Entri Blog\" \/>\n<meta property=\"og:description\" content=\"&nbsp; What is Polymorphism? In simple words, it means\u00a0&#8220;Many Forms&#8221;. What this means in the object-oriented programming language like Java is that, a single line of code (Here, a single line of code can refer to the name of a method, or a variable, etc.) can have multiple meanings, and which meaning is to be [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Entri Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/entri.me\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-15T05:45:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-23T15:08:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png\" \/>\n\t<meta property=\"og:image:width\" content=\"820\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Feeba Mahin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@entri_app\" \/>\n<meta name=\"twitter:site\" content=\"@entri_app\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Feeba Mahin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\"},\"author\":{\"name\":\"Feeba Mahin\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36\"},\"headline\":\"Understanding Polymorphism In Java\",\"datePublished\":\"2022-04-15T05:45:16+00:00\",\"dateModified\":\"2022-11-23T15:08:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\"},\"wordCount\":764,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png\",\"articleSection\":[\"Articles\",\"Java Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\",\"url\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\",\"name\":\"Understanding Polymorphism In Java - Entri Blog\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png\",\"datePublished\":\"2022-04-15T05:45:16+00:00\",\"dateModified\":\"2022-11-23T15:08:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png\",\"width\":820,\"height\":615,\"caption\":\"Understanding Polymorphism In Java\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/entri.app\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entri Skilling\",\"item\":\"https:\/\/entri.app\/blog\/category\/entri-skilling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Java Programming\",\"item\":\"https:\/\/entri.app\/blog\/category\/entri-skilling\/java-programming\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Understanding Polymorphism In Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/entri.app\/blog\/#website\",\"url\":\"https:\/\/entri.app\/blog\/\",\"name\":\"Entri Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/entri.app\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/entri.app\/blog\/#organization\",\"name\":\"Entri App\",\"url\":\"https:\/\/entri.app\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"width\":989,\"height\":446,\"caption\":\"Entri App\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/entri.me\/\",\"https:\/\/x.com\/entri_app\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36\",\"name\":\"Feeba Mahin\",\"url\":\"https:\/\/entri.app\/blog\/author\/feeba123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding Polymorphism In Java - Entri Blog","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:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Polymorphism In Java - Entri Blog","og_description":"&nbsp; What is Polymorphism? In simple words, it means\u00a0&#8220;Many Forms&#8221;. What this means in the object-oriented programming language like Java is that, a single line of code (Here, a single line of code can refer to the name of a method, or a variable, etc.) can have multiple meanings, and which meaning is to be [&hellip;]","og_url":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/","og_site_name":"Entri Blog","article_publisher":"https:\/\/www.facebook.com\/entri.me\/","article_published_time":"2022-04-15T05:45:16+00:00","article_modified_time":"2022-11-23T15:08:46+00:00","og_image":[{"width":820,"height":615,"url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png","type":"image\/png"}],"author":"Feeba Mahin","twitter_card":"summary_large_image","twitter_creator":"@entri_app","twitter_site":"@entri_app","twitter_misc":{"Written by":"Feeba Mahin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#article","isPartOf":{"@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/"},"author":{"name":"Feeba Mahin","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36"},"headline":"Understanding Polymorphism In Java","datePublished":"2022-04-15T05:45:16+00:00","dateModified":"2022-11-23T15:08:46+00:00","mainEntityOfPage":{"@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/"},"wordCount":764,"commentCount":0,"publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"image":{"@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png","articleSection":["Articles","Java Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/","url":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/","name":"Understanding Polymorphism In Java - Entri Blog","isPartOf":{"@id":"https:\/\/entri.app\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage"},"image":{"@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png","datePublished":"2022-04-15T05:45:16+00:00","dateModified":"2022-11-23T15:08:46+00:00","breadcrumb":{"@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#primaryimage","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Understanding-Polymorphism-In-Java.png","width":820,"height":615,"caption":"Understanding Polymorphism In Java"},{"@type":"BreadcrumbList","@id":"https:\/\/entri.app\/blog\/understanding-polymorphism-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/entri.app\/blog\/"},{"@type":"ListItem","position":2,"name":"Entri Skilling","item":"https:\/\/entri.app\/blog\/category\/entri-skilling\/"},{"@type":"ListItem","position":3,"name":"Java Programming","item":"https:\/\/entri.app\/blog\/category\/entri-skilling\/java-programming\/"},{"@type":"ListItem","position":4,"name":"Understanding Polymorphism In Java"}]},{"@type":"WebSite","@id":"https:\/\/entri.app\/blog\/#website","url":"https:\/\/entri.app\/blog\/","name":"Entri Blog","description":"","publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/entri.app\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/entri.app\/blog\/#organization","name":"Entri App","url":"https:\/\/entri.app\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","width":989,"height":446,"caption":"Entri App"},"image":{"@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/entri.me\/","https:\/\/x.com\/entri_app"]},{"@type":"Person","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36","name":"Feeba Mahin","url":"https:\/\/entri.app\/blog\/author\/feeba123\/"}]}},"_links":{"self":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25520712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/users\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/comments?post=25520712"}],"version-history":[{"count":9,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25520712\/revisions"}],"predecessor-version":[{"id":25548160,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25520712\/revisions\/25548160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media\/25520944"}],"wp:attachment":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media?parent=25520712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/categories?post=25520712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/tags?post=25520712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}