{"id":661,"date":"2024-02-27T19:22:53","date_gmt":"2024-02-27T19:22:53","guid":{"rendered":"https:\/\/javigomez.org\/?p=661"},"modified":"2025-09-29T20:33:34","modified_gmt":"2025-09-29T20:33:34","slug":"u10-02-clases-en-java-interfaces-ii","status":"publish","type":"post","link":"https:\/\/javigomez.org\/index.php\/2024\/02\/27\/u10-02-clases-en-java-interfaces-ii\/","title":{"rendered":"U10-02-Clases en Java \u2013 Interfaces II"},"content":{"rendered":"\n<p>En Java, un interface puede contener tanto m\u00e9todos como constantes. Estos m\u00e9todos y constantes pueden ser est\u00e1ticos o por defecto (default) dependiendo de la versi\u00f3n de Java que est\u00e9s utilizando. <\/p>\n\n\n\n<p><strong>Atributos est\u00e1ticos<\/strong>: Los interface en Java no pueden contener atributos (variables) est\u00e1ticos. Solo pueden tener constantes, las cuales se definen autom\u00e1ticamente como est\u00e1ticas y finales. <\/p>\n\n\n\n<p><strong>M\u00e9todos est\u00e1ticos:<\/strong> Desde Java 8 en adelante, los interface pueden contener m\u00e9todos est\u00e1ticos, los cuales est\u00e1n definidos con la palabra clave static. Estos m\u00e9todos son implementaciones est\u00e1ticas que est\u00e1n asociadas al interface en s\u00ed, no a las implementaciones de clases que lo implementen. <\/p>\n\n\n\n<p><strong>M\u00e9todos por defecto:<\/strong> Desde Java 8, los interface pueden contener m\u00e9todos por defecto (default methods), los cuales est\u00e1n definidos con la palabra clave default. Estos m\u00e9todos proporcionan una implementaci\u00f3n por defecto que las clases que implementen el interface pueden utilizar. Esto permite agregar funcionalidades a los interface sin necesidad de romper la compatibilidad con las implementaciones anteriores.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class E00_00 {\n\n\tpublic static void main(String&#91;] args) {\n\t\t\n\t\tPerro p=new Perro();\n\t\tp.voz();\n\t\tp.nombre=\"Sam\";\n\t\tp.dormir();\n\t\t\n\t\tGato g=new Gato();\n\t\tg.dormir();\n\t\t\n\t\tSonido.bostezo();\n\t\t\n\t\tSonido s=new Sonido() {\n\t\t\tpublic void voz() {\n\t\t\t\tSystem.out.println(\"sonido de anonimo\");\n\t\t\t}\n\t\t};\n\t\t\n\t\ts.voz();\n\t\t\n\t\tSystem.out.println(p.getClass().getName());\n\t\tSystem.out.println(s.getClass().getName());\n\n\t}\n}\n\ninterface Sonido{\n\tint version=1;\n\tvoid voz();\n\t\n\tdefault void dormir(){\n\t\tSystem.out.println(\"zzzz\");\n\t}\n\t\n\tstatic void bostezo() {\n\t\tSystem.out.println(\"uuuuuu\");\n\t}\n\t\n}\n\nclass Animal{\n\tString nombre;\n}\n\nclass Perro extends Animal implements Sonido{\n\n\t@Override\n\tpublic void voz() {\n\t\tSystem.out.println(\"guau\");\n\t}\n}\n\nclass Gato extends Animal implements Sonido{\n\n\t@Override\n\tpublic void voz() {\n\t\tSystem.out.println(\"miau\");\n\t}\n\tpublic void dormir() {\n\t\tSystem.out.println(\"miauzzzzzz\");\n\t}\n}\n\nclass Merluza extends Animal{\n\t\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En Java, un interface puede contener tanto m\u00e9todos como constantes. Estos m\u00e9todos y constantes pueden ser est\u00e1ticos o por defecto (default) dependiendo de la versi\u00f3n &hellip; <\/p>\n","protected":false},"author":1,"featured_media":662,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[47,201,203,230,265],"class_list":["post-661","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-atributos","tag-interfaces","tag-java","tag-metodos","tag-poo"],"_links":{"self":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/comments?post=661"}],"version-history":[{"count":1,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/661\/revisions"}],"predecessor-version":[{"id":883,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/661\/revisions\/883"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/media\/662"}],"wp:attachment":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/media?parent=661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/categories?post=661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/tags?post=661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}