{"id":25761,"date":"2024-03-16T05:32:22","date_gmt":"2024-03-16T05:32:22","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/"},"modified":"2024-03-22T06:57:12","modified_gmt":"2024-03-22T06:57:12","slug":"how-do-you-define-interfaces-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/","title":{"rendered":"How do you define interfaces in Java?"},"content":{"rendered":"<p>In Java, an interface can be defined using the interface keyword. It can include abstract methods, default methods, and static methods, but cannot contain instance fields or constructors.<\/p>\n<p>Here is the syntax for defining interfaces:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> interface \u63a5\u53e3\u540d {\r\n    <span class=\"hljs-comment\">\/\/ \u62bd\u8c61\u65b9\u6cd5\u58f0\u660e<\/span>\r\n    <span class=\"hljs-keyword\">void<\/span> \u65b9\u6cd5\u540d();\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u65b9\u6cd5\u58f0\u660e<\/span>\r\n    <span class=\"hljs-keyword\">default<\/span> <span class=\"hljs-keyword\">void<\/span> \u9ed8\u8ba4\u65b9\u6cd5\u540d() {\r\n        <span class=\"hljs-comment\">\/\/ \u65b9\u6cd5\u4f53<\/span>\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u9759\u6001\u65b9\u6cd5\u58f0\u660e<\/span>\r\n    <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> \u9759\u6001\u65b9\u6cd5\u540d() {\r\n        <span class=\"hljs-comment\">\/\/ \u65b9\u6cd5\u4f53<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In this case, the interface name is a name you define yourself, which can be named as needed. The abstract methods in the interface do not have a method body, they simply declare the method&#8217;s name, parameters, and return type. Default methods and static methods can have a method body and provide default method implementations directly in the interface.<\/p>\n<p>It should be noted that interfaces cannot be instantiated and can only be implemented or extended by other classes. A class implementing an interface needs to use the &#8220;implements&#8221; keyword, while an interface extending another interface needs to use the &#8220;extends&#8221; keyword.<\/p>\n<p>Here is an example of defining an interface and implementing it:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">interface<\/span> <span class=\"hljs-title class_\">Animal<\/span> {\r\n    <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">sound<\/span><span class=\"hljs-params\">()<\/span>;\r\n}\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Dog<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">Animal<\/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_\">sound<\/span><span class=\"hljs-params\">()<\/span> {\r\n        System.out.println(<span class=\"hljs-string\">\"\u6c6a\u6c6a\u6c6a\uff01\"<\/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\">dog<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Dog<\/span>();\r\n        dog.sound();\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, Animal is an interface, and the Dog class implements this interface. The Dog class must implement the sound() method from the Animal interface and provide a specific method implementation. In the main method of the Main class, a Dog object is created and the sound() method is called. The output is &#8220;Woof woof woof!&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, an interface can be defined using the interface keyword. It can include abstract methods, default methods, and static methods, but cannot contain instance fields or constructors. Here is the syntax for defining interfaces: public interface \u63a5\u53e3\u540d { \/\/ \u62bd\u8c61\u65b9\u6cd5\u58f0\u660e void \u65b9\u6cd5\u540d(); \/\/ \u9ed8\u8ba4\u65b9\u6cd5\u58f0\u660e default void \u9ed8\u8ba4\u65b9\u6cd5\u540d() { \/\/ \u65b9\u6cd5\u4f53 } \/\/ \u9759\u6001\u65b9\u6cd5\u58f0\u660e static [&hellip;]<\/p>\n","protected":false},"author":14,"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-25761","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 do you define interfaces 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-do-you-define-interfaces-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do you define interfaces in Java?\" \/>\n<meta property=\"og:description\" content=\"In Java, an interface can be defined using the interface keyword. It can include abstract methods, default methods, and static methods, but cannot contain instance fields or constructors. Here is the syntax for defining interfaces: public interface \u63a5\u53e3\u540d { \/\/ \u62bd\u8c61\u65b9\u6cd5\u58f0\u660e void \u65b9\u6cd5\u540d(); \/\/ \u9ed8\u8ba4\u65b9\u6cd5\u58f0\u660e default void \u9ed8\u8ba4\u65b9\u6cd5\u540d() { \/\/ \u65b9\u6cd5\u4f53 } \/\/ \u9759\u6001\u65b9\u6cd5\u58f0\u660e static [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-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-16T05:32:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T06:57:12+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\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=\"Noah Thompson\" \/>\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-do-you-define-interfaces-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"How do you define interfaces in Java?\",\"datePublished\":\"2024-03-16T05:32:22+00:00\",\"dateModified\":\"2024-03-22T06:57:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/\"},\"wordCount\":213,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/\",\"name\":\"How do you define interfaces in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T05:32:22+00:00\",\"dateModified\":\"2024-03-22T06:57:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do you define interfaces 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\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How do you define interfaces 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-do-you-define-interfaces-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How do you define interfaces in Java?","og_description":"In Java, an interface can be defined using the interface keyword. It can include abstract methods, default methods, and static methods, but cannot contain instance fields or constructors. Here is the syntax for defining interfaces: public interface \u63a5\u53e3\u540d { \/\/ \u62bd\u8c61\u65b9\u6cd5\u58f0\u660e void \u65b9\u6cd5\u540d(); \/\/ \u9ed8\u8ba4\u65b9\u6cd5\u58f0\u660e default void \u9ed8\u8ba4\u65b9\u6cd5\u540d() { \/\/ \u65b9\u6cd5\u4f53 } \/\/ \u9759\u6001\u65b9\u6cd5\u58f0\u660e static [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T05:32:22+00:00","article_modified_time":"2024-03-22T06:57:12+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"How do you define interfaces in Java?","datePublished":"2024-03-16T05:32:22+00:00","dateModified":"2024-03-22T06:57:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/"},"wordCount":213,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/","name":"How do you define interfaces in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T05:32:22+00:00","dateModified":"2024-03-22T06:57:12+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-define-interfaces-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How do you define interfaces 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\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25761","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\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=25761"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25761\/revisions"}],"predecessor-version":[{"id":59889,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/25761\/revisions\/59889"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=25761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=25761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=25761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}