{"id":28153,"date":"2024-03-16T09:49:22","date_gmt":"2024-03-16T09:49:22","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/"},"modified":"2024-03-22T12:45:44","modified_gmt":"2024-03-22T12:45:44","slug":"how-to-use-anonymous-inner-classes-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/","title":{"rendered":"How to use anonymous inner classes in Java?"},"content":{"rendered":"<p>Java anonymous inner classes are a special way of defining a class directly while declaring and instantiating it, which can simplify coding and improve code readability.<\/p>\n<p>The steps for using an anonymous inner class are as follows:<\/p>\n<ol>\n<li>Define an anonymous inner class as an implementation class of an interface or abstract class, or directly as a subclass of a class.<\/li>\n<li>fresh<\/li>\n<li>If the anonymous inner class implements an interface, you can directly implement the interface&#8217;s methods in the class implementing the interface.<\/li>\n<li>If an anonymous inner class inherits from a class, it can directly override the methods of the superclass in the subclass.<\/li>\n<\/ol>\n<p>Here is an example code snippet using an anonymous inner class:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">AnonymousInnerClassExample<\/span> {\r\n    \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-comment\">\/\/ \u4f7f\u7528\u533f\u540d\u5185\u90e8\u7c7b\u5b9e\u73b0\u63a5\u53e3<\/span>\r\n        <span class=\"hljs-type\">MyInterface<\/span> <span class=\"hljs-variable\">myInterface<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">MyInterface<\/span>() {\r\n            <span class=\"hljs-meta\">@Override<\/span>\r\n            <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">method<\/span><span class=\"hljs-params\">()<\/span> {\r\n                System.out.println(<span class=\"hljs-string\">\"\u5b9e\u73b0\u63a5\u53e3\u7684\u533f\u540d\u5185\u90e8\u7c7b\"<\/span>);\r\n            }\r\n        };\r\n        myInterface.method();\r\n        \r\n        <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u533f\u540d\u5185\u90e8\u7c7b\u7ee7\u627f\u7c7b<\/span>\r\n        <span class=\"hljs-type\">MyClass<\/span> <span class=\"hljs-variable\">myClass<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">MyClass<\/span>() {\r\n            <span class=\"hljs-meta\">@Override<\/span>\r\n            <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">method<\/span><span class=\"hljs-params\">()<\/span> {\r\n                System.out.println(<span class=\"hljs-string\">\"\u7ee7\u627f\u7c7b\u7684\u533f\u540d\u5185\u90e8\u7c7b\"<\/span>);\r\n            }\r\n        };\r\n        myClass.method();\r\n    }\r\n    \r\n    <span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u63a5\u53e3<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">interface<\/span> <span class=\"hljs-title class_\">MyInterface<\/span> {\r\n        <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">method<\/span><span class=\"hljs-params\">()<\/span>;\r\n    }\r\n    \r\n    <span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u7c7b<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyClass<\/span> {\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">method<\/span><span class=\"hljs-params\">()<\/span> {\r\n            System.out.println(<span class=\"hljs-string\">\"\u539f\u59cb\u7c7b\"<\/span>);\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>The output result is:<\/p>\n<pre class=\"post-pre\"><code>\u5b9e\u73b0\u63a5\u53e3\u7684\u533f\u540d\u5185\u90e8\u7c7b\r\n\u7ee7\u627f\u7c7b\u7684\u533f\u540d\u5185\u90e8\u7c7b\r\n<\/code><\/pre>\n<p>In the above code, the MyInterface interface and MyClass class were implemented using anonymous inner classes, with their corresponding methods overridden. An instance of the anonymous inner class was created in the main method, and its methods were called.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java anonymous inner classes are a special way of defining a class directly while declaring and instantiating it, which can simplify coding and improve code readability. The steps for using an anonymous inner class are as follows: Define an anonymous inner class as an implementation class of an interface or abstract class, or directly as [&hellip;]<\/p>\n","protected":false},"author":11,"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-28153","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 to use anonymous inner classes 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-to-use-anonymous-inner-classes-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use anonymous inner classes in Java?\" \/>\n<meta property=\"og:description\" content=\"Java anonymous inner classes are a special way of defining a class directly while declaring and instantiating it, which can simplify coding and improve code readability. The steps for using an anonymous inner class are as follows: Define an anonymous inner class as an implementation class of an interface or abstract class, or directly as [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-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-16T09:49:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T12:45:44+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\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=\"Olivia Parker\" \/>\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-to-use-anonymous-inner-classes-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How to use anonymous inner classes in Java?\",\"datePublished\":\"2024-03-16T09:49:22+00:00\",\"dateModified\":\"2024-03-22T12:45:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/\"},\"wordCount\":166,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/\",\"name\":\"How to use anonymous inner classes in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T09:49:22+00:00\",\"dateModified\":\"2024-03-22T12:45:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use anonymous inner classes 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\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use anonymous inner classes 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-to-use-anonymous-inner-classes-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to use anonymous inner classes in Java?","og_description":"Java anonymous inner classes are a special way of defining a class directly while declaring and instantiating it, which can simplify coding and improve code readability. The steps for using an anonymous inner class are as follows: Define an anonymous inner class as an implementation class of an interface or abstract class, or directly as [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T09:49:22+00:00","article_modified_time":"2024-03-22T12:45:44+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How to use anonymous inner classes in Java?","datePublished":"2024-03-16T09:49:22+00:00","dateModified":"2024-03-22T12:45:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/"},"wordCount":166,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/","name":"How to use anonymous inner classes in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T09:49:22+00:00","dateModified":"2024-03-22T12:45:44+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-inner-classes-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use anonymous inner classes 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\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28153","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=28153"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28153\/revisions"}],"predecessor-version":[{"id":62432,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28153\/revisions\/62432"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=28153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=28153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=28153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}