{"id":1954,"date":"2016-11-23T16:34:42","date_gmt":"2016-11-23T16:34:42","guid":{"rendered":"http:\/\/codethataint.com\/blog\/?p=1954"},"modified":"2016-11-23T16:50:20","modified_gmt":"2016-11-23T16:50:20","slug":"can-we-instantiate-abstract-class","status":"publish","type":"post","link":"https:\/\/codethataint.com\/blog\/can-we-instantiate-abstract-class\/","title":{"rendered":"Can we instantiate abstract class"},"content":{"rendered":"<p><strong>Is it possible to create Object for abstract class?<\/strong><\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nabstract class my {\r\n    public void mymethod() {\r\n        System.out.print(&quot;Abstract&quot;);\r\n    }\r\n}\r\n\r\nclass poly {\r\n    public static void main(String a&#x5B;]) {\r\n        my m = new my() {};\r\n        m.mymethod();\r\n        System.out.println(m.getClass().getSuperclass());\r\n    }\r\n}\r\n<\/pre>\n<p><strong>No, we can&#8217;t.The abstract super class is not instantiated by us but by java.<\/strong><\/p>\n<p>In the above code we are creating object for anonymous class.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nmy m = new my() {};\r\n<\/pre>\n<p>When the above code is compiled will result in following class file creation<\/p>\n<pre>\r\nMy.class\r\nPoly$1.class  \/\/ Class file corresponding to anonymous subclass\r\nPoly.class\r\n<\/pre>\n<p><strong>anonymous inner type allows you to create a no-name subclass of the abstract class <\/strong><\/p>\n<p>When the above code is run the output would be <\/p>\n<p><strong>Output<\/strong><\/p>\n<pre>\r\n Abstract\r\n class my\r\n<\/pre>\n<p>Now lets override the method in anonymous inner class like one below.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nabstract class my {\r\n    public void mymethod() {\r\n        System.out.print(&quot;Abstract&quot;);\r\n    }\r\n}\r\n\r\nclass poly {\r\n    public static void main(String a&#x5B;]) {\r\n        my m = new my() {\r\n          public void mymethod() {\r\n               System.out.print(&quot;Overridden in anonymous class&quot;);\r\n           }\r\n        };\r\n        m.mymethod();\r\n        System.out.println(m.getClass().getSuperclass());\r\n    }\r\n}\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<pre>\r\n Overridden in anonymous class\r\n class my\r\n<\/pre>\n<p><strong>Anonymous inner class with same name as abstract class are child classes of abstract class.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Is it possible to create Object for abstract class? abstract class my { public void mymethod() { System.out.print(&quot;Abstract&quot;); } } class poly { public static void main(String a&#x5B;]) { my m = new my() {}; m.mymethod(); System.out.println(m.getClass().getSuperclass()); } } No, we can&#8217;t.The abstract super class is not instantiated by us but by java. In the&hellip; <a href=\"https:\/\/codethataint.com\/blog\/can-we-instantiate-abstract-class\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[97,193],"tags":[],"class_list":["post-1954","post","type-post","status-publish","format-standard","hentry","category-abstract","category-interview-questions-java"],"_links":{"self":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts\/1954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/comments?post=1954"}],"version-history":[{"count":1,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts\/1954\/revisions"}],"predecessor-version":[{"id":1955,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts\/1954\/revisions\/1955"}],"wp:attachment":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/media?parent=1954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/categories?post=1954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/tags?post=1954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}