{"id":76948,"date":"2020-02-29T16:03:05","date_gmt":"2020-02-29T10:33:05","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=76948"},"modified":"2020-02-29T16:03:05","modified_gmt":"2020-02-29T10:33:05","slug":"method-overloading-and-overriding","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/","title":{"rendered":"Java Method Overloading and Overriding &#8211; What really differentiates them?"},"content":{"rendered":"<p>In our last tutorial, we discussed Method Overloading and Method Overriding in Java. Both of them are used to implement polymorphism in Java. But knowing about them is just not enough, you should also know the differences between both of them.<\/p>\n<p>Today in this article, we will discuss the difference between Method Overloading and Overriding in Java with the help of some examples and programs.<\/p>\n<h3>What is Method Overloading in Java?<\/h3>\n<p>Though the word <strong>\u2018method\u2019<\/strong> remains the same in the case of both method overloading and overriding, the main difference comes from the fact that when they are resolved.<\/p>\n<p>Method overloading is resolved during the compilation of the program while method overriding is resolved at the time of execution or during the runtime.<\/p>\n<p>When a class has two or more than two methods which are having the same name but different types of order or number of parameters, it is known as <strong>Method Overloading.<\/strong><\/p>\n<p>Java allows a function to have the same name if it can distinguish them by their number and type of arguments.<\/p>\n<p><strong>For example, the following functions are different in Java:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">float divide(int a, int b){...}<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">float divide( float x, float y){...}<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">float divide (float a,int b) {...}<\/pre>\n<p>That is, the function divide() taking two <strong>int<\/strong> arguments is different from divide() taking two <strong>float<\/strong> arguments, and also from divide() taking both <strong>int<\/strong> and <strong>float<\/strong> arguments.<\/p>\n<p>This is called function overloading.<\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/02\/method-overloading-in-java.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77105\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/02\/method-overloading-in-java.jpg\" alt=\"Java Method Overloading\" width=\"562\" height=\"346\" \/><\/a><\/p>\n<h4>Why Method Overloading?<\/h4>\n<p>The main advantage of using method overloading in Java is that it saves time and effort to define a method again and again for performing the same task. In the above example, the three methods are basically performing a division operation.<\/p>\n<p>The names of the methods are the same but the type and number of parameters are different. Method Overloading also helps to implement the static or compile-time polymorphism in Java.<\/p>\n<p>Let us take an example of finding the sum of numbers of integer types. Suppose we want to find the sum number of double types. Then, we can use the concept of method overloading. We will create two or more methods with the same name but different parameters.<\/p>\n<p><strong>Code to illustrate Method\/function overloading:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">package com.techvidvan.methodoverriding;\npublic class Addition\n{\n        int add(int a, int b)\n        {\n                return (a + b);\n        }\n        int add(int a , int b , int c)\n        {\n                return (a + b + c) ;\n        }\n        double add(double a , double b)\n        {\n                return (a + b);\n        }\n        double add(int a , double b)\n        {\n                return (a + b);\n        }\n        public static void main( String args[])\n        {\n                Addition ob = new Addition();\n\n                System.out.println(\"Calling add method with two int parameters: \" +ob.add(17, 25));\n                System.out.println(\"Calling add method with three int parameters: \" +ob.add(55, 27, 35));\n                System.out.println(\"Calling add method with two double parameters: \" +ob.add(36.5, 42.8));\n                System.out.println(\"Calling add method with one int and one double parameter: \" +ob.add(11, 24.5));\n        }\n}<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<div class=\"code-output\">Calling add method with two int parameters: 42<br \/>\nCalling add method with three int parameters: 117<br \/>\nCalling add method with two double parameters: 79.3<br \/>\nCalling add method with one int and one double parameter: 35.5<\/div>\n<h4>Method Overloading Rules<\/h4>\n<p>There are some rules which you need to follow for implementing Method Overloading<\/p>\n<h5>Rule 1: Change the method signature<\/h5>\n<p>The most important rule for method overloading in Java is to change the method signature. The method signature means a number of parameters, types of parameters and the sequence of parameters. At least one of them should be different in order to overload a method.<\/p>\n<p><strong>Code Snippet to understand Rule 1:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public class MyClass\n{\n    \t\/\/Overloaded method\n    \tpublic int multiply(int num1, num2)\n    \t{\n    \t    \treturn num1 * num2;\n    \t}\n\n    \t\/\/Overloading method\n    \tpublic int multiply(float num1, int num2)\t\/\/method with different signature\n    \t{\n    \t    \treturn num1 * num2\n    \t}\n}\n<\/pre>\n<h5>Rule 2: Do not consider the Return type of method as a part of the method signature.<\/h5>\n<p>Never consider that changing only the return type of the method, the method can be overloaded because the return type is not part of the method signature.<\/p>\n<p><strong>Code Snippet to understand Rule 2:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public class MyClass\n{\n    \t\/\/ Overloaded method\n    \tpublic int multiply(int num1, num2)\n    \t{\n    \t    \treturn num1 * num2;\n    \t}\n\n    \t\/\/ Overloading method\n    \tpublic float multiply(int num1, num2) \/\/Not valid because we only chnaged the return type\n    \t{\n    \t    \treturn num1 * num2;\n    \t}\n}<\/pre>\n<h5>Rule 3: The type of exceptions thrown from the methods are also not considered while overloading a method.<\/h5>\n<p>The method overloading is not affected by the type of exceptions thrown by the methods. So whether your overloaded method throws the same exception, a different exception, or does not throw an exception; there is no effect on method overloading.<\/p>\n<p><strong>Code Snippet to understand Rule 3:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public class MyClass\n{\n    \t\/\/ Overloaded method\n    \tpublic int multiply(int num1, num2) throws NullPointerException\n    \t{\n    \t    \treturn num1 * num2;\n    \t}\n\n    \t\/\/ Overloading method\n    \tpublic int multiply(int num1, num2) throws Exception\n    \t\/\/not valid because throwing different type of exception will not lead to method overloadig\n    \t{\n    \t    \treturn num1 * num2;\n    \t}\n}<\/pre>\n<h3>What is Method Overriding in Java?<\/h3>\n<p>Method Overriding is a feature that allows us to redefine the method in the subclass or derived class which is already defined in its parent class or superclass.<\/p>\n<p>In any object-oriented programming language, we can implement Method Overriding only when two classes have <strong>\u2018is-a\u2019<\/strong> relationship of inheritance between them.<\/p>\n<p>Which method will be executed depends on the object. If the object of the subclass calls the method, the method of the subclass will override the superclass method and the same method will be executed.<\/p>\n<p>Otherwise, if the superclass object calls the method, the superclass method will be executed.<a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/02\/method-overriding-in-java-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77106\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/02\/method-overriding-in-java-1.jpg\" alt=\"Java Method Overriding\" width=\"562\" height=\"220\" \/><\/a><\/p>\n<p><strong>Code to illustrate Method\/function overloading:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">package com.techvidvan.methodoverriding;\n\/\/Base Class\nclass Parent\n{\n  void view()\n  {\n    System.out.println(\"This is a parent class method\");\n  }\n}\nclass Child extends Parent\n{\n  @Override\n  void view()\n  {\n    System.out.println(\"This is a child class method\");\n  }\n}\n\/\/Driver class\npublic class MethodOverriding\n{\n  public static void main(String args[])\n  {\n    Parent obj = new Parent();\n    obj.view();\n    Parent obj1 = new Child();\n    obj1.view();\n  }\n}<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<div class=\"code-output\">This is a parent class method<br \/>\nThis is a child class method<\/div>\n<p>Here, we can see that a method view() has been overridden in the derived class name <strong>Child<\/strong> that is already provided by the base class name <strong>Parent<\/strong>.<\/p>\n<p>When we create the instance of class <strong>Child<\/strong> and call the view() method, we see that only derived class view() method executes instead of base class method view() and when we create the instance of class Parent and call the view() method, we see that only base class view() method runs instead of derived class method view().<\/p>\n<p>So, it is clear that in method overriding, the method is bound to the objects on the runtime which is decided by the <strong>JVM<\/strong>. That\u2019s why it is called <strong>Run time polymorphism.<\/strong><\/p>\n<h3>Difference between Method Overloading and Overriding in Java<\/h3>\n<p>After having brief knowledge of both the techniques, now we will compare both of them with several parameters.<\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/02\/comparison-of-method-overloading-overriding-in-java.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77107\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/02\/comparison-of-method-overloading-overriding-in-java.jpg\" alt=\"Comparison of Method overloading and overriding \" width=\"412\" height=\"428\" \/><\/a><\/p>\n<table class=\"tv-table-center\">\n<tbody>\n<tr>\n<td><b>Parameter<\/b><\/td>\n<td><b>Method Overloading<\/b><\/td>\n<td><b>Method Overriding<\/b><\/td>\n<\/tr>\n<tr>\n<td><strong>Polymorphism<\/strong><\/td>\n<td><span style=\"font-weight: 400\">Method Overloading is used to implement Compile time or static polymorphism.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Method Overriding is used to implement Runtime or dynamic polymorphism.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Purpose<\/strong><\/td>\n<td><span style=\"font-weight: 400\">It is used to expand the readability of the program.<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is used to give the specific implementation of the method which is already provided by its base class<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Parameter List<\/strong><\/td>\n<td><span style=\"font-weight: 400\">Parameters of the overloaded function must be different in either number or type in case of method overloading<\/span><\/td>\n<td><span style=\"font-weight: 400\">The number of parameters and type of each parameter must be the same in case of method overriding.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Number of Classes<\/strong><\/td>\n<td><span style=\"font-weight: 400\">It occurs within the same class<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is performed within two classes with an inheritance relationship.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Inheritance<\/strong><\/td>\n<td><span style=\"font-weight: 400\">It may or may not be required for Method Overloading<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is must for Method Overriding<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Return Type<\/strong><\/td>\n<td><span style=\"font-weight: 400\">The return type may or may not be the same, but we have to change the parameter.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Here, the return type must be either the same or of the covariant type.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>static, final and private methods<\/strong><\/td>\n<td><span style=\"font-weight: 400\">We can overload a static, final or private method in Method Overloading<\/span><\/td>\n<td><span style=\"font-weight: 400\">We can not override a static, final or private method in Method Overriding<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Bond<\/strong><\/td>\n<td><span style=\"font-weight: 400\">Static Binding<\/span><\/td>\n<td><span style=\"font-weight: 400\">Dynamic Binding<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Speed<\/strong><\/td>\n<td><span style=\"font-weight: 400\">It is fast<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is slower<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Signature<\/strong><\/td>\n<td><span style=\"font-weight: 400\">The signature must be different<\/span><\/td>\n<td><span style=\"font-weight: 400\">The signature must be the same<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Association<\/strong><\/td>\n<td><span style=\"font-weight: 400\">It is usually associated with static programs.<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is usually associated with object-oriented programs.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Performance<\/strong><\/td>\n<td><span style=\"font-weight: 400\">Overloading gives better performance than overriding<\/span><\/td>\n<td><span style=\"font-weight: 400\">Lesser\u00a0 Performance than Overloading because the binding of the overridden method is done at the runtime.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Access Modifier<\/strong><\/td>\n<td><span style=\"font-weight: 400\">Any access modifier can be used while overloading the methods\u00a0<\/span><\/td>\n<td><span style=\"font-weight: 400\">The level of access should be either the same or with a wider scope.<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Exceptions<\/strong><\/td>\n<td><span style=\"font-weight: 400\">May throw different exceptions.<\/span><\/td>\n<td><span style=\"font-weight: 400\">May reduce or eliminate exceptions. But, must not throw new or broader checked exceptions but can throw narrower checked exceptions.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Summary<\/h3>\n<p>Method Overloading and Method Overriding are the two very essential concepts of Object-Oriented Programming. Both are used to support the concept of Polymorphism in Java.<\/p>\n<p>In this article, we learned about the basic differences between Method overloading and Method Overriding in Java with the help of examples and programs. This article will surely help you to compare both the techniques.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our last tutorial, we discussed Method Overloading and Method Overriding in Java. Both of them are used to implement polymorphism in Java. But knowing about them is just not enough, you should also&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":77120,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[183],"tags":[1877,1878,1848,1879,1880,1874,1881],"class_list":["post-76948","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-comparision-between-method-overloading-and-method-overriding","tag-difference-between-method-overloading-and-method-overriding","tag-method-overloading-in-java","tag-method-overloading-rules","tag-method-overloading-vs-method-overriding","tag-method-overriding-in-java","tag-method-overriding-vs-method-overloading"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java Method Overloading and Overriding - What really differentiates them? - TechVidvan<\/title>\n<meta name=\"description\" content=\"With this article, learn the basic concept and difference between Method overloading and Method Overriding in Java with the help of examples and programs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Method Overloading and Overriding - What really differentiates them? - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"With this article, learn the basic concept and difference between Method overloading and Method Overriding in Java with the help of examples and programs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-29T10:33:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/02\/method-overloading-vs-overriding-in-java.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java Method Overloading and Overriding - What really differentiates them? - TechVidvan","description":"With this article, learn the basic concept and difference between Method overloading and Method Overriding in Java with the help of examples and programs.","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:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/","og_locale":"en_US","og_type":"article","og_title":"Java Method Overloading and Overriding - What really differentiates them? - TechVidvan","og_description":"With this article, learn the basic concept and difference between Method overloading and Method Overriding in Java with the help of examples and programs.","og_url":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2020-02-29T10:33:05+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/02\/method-overloading-vs-overriding-in-java.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Java Method Overloading and Overriding &#8211; What really differentiates them?","datePublished":"2020-02-29T10:33:05+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/"},"wordCount":1201,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/02\/method-overloading-vs-overriding-in-java.jpg","keywords":["Comparision between Method Overloading and Method Overriding","Difference between Method Overloading and Method Overriding","Method Overloading in Java","Method Overloading Rules","Method Overloading vs Method Overriding","Method Overriding in Java","Method Overriding vs Method Overloading"],"articleSection":["Java Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/","url":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/","name":"Java Method Overloading and Overriding - What really differentiates them? - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/02\/method-overloading-vs-overriding-in-java.jpg","datePublished":"2020-02-29T10:33:05+00:00","description":"With this article, learn the basic concept and difference between Method overloading and Method Overriding in Java with the help of examples and programs.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/02\/method-overloading-vs-overriding-in-java.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/02\/method-overloading-vs-overriding-in-java.jpg","width":802,"height":420,"caption":"method overloading vs overriding in java"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/method-overloading-and-overriding\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Java Method Overloading and Overriding &#8211; What really differentiates them?"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/76948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=76948"}],"version-history":[{"count":0,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/76948\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/77120"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=76948"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=76948"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=76948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}