[{"data":1,"prerenderedAt":841},["ShallowReactive",2],{"navigation_docs":3,"-herencia-interfaces":412,"-herencia-interfaces-surround":838},[4,18,43,118,160,200,231,320,346],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"icon":20,"path":21,"stem":22,"children":23,"page":42},"Entorno de desarrollo","i-codicon-edit-code","\u002Fide","2.ide",[24,28,33,37],{"title":25,"path":26,"stem":27,"icon":20},"¿Qué es un IDE?","\u002Fide\u002Fentorno","2.ide\u002F1.entorno",{"title":29,"path":30,"stem":31,"icon":32},"Estructura de un Proyecto","\u002Fide\u002Festructura","2.ide\u002F2.estructura","i-clarity-tree-view-line",{"title":34,"path":35,"stem":36,"icon":20},"La compilación en un IDE","\u002Fide\u002Fcompilacion","2.ide\u002F3.compilacion",{"title":38,"path":39,"stem":40,"icon":41},"Depuración de Código","\u002Fide\u002Fdepurar","2.ide\u002F4.depurar","i-lucide-bug",false,{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":42},"Clases y Objetos","i-catppuccin-java-class","\u002Fclases-objetos","3.clases-objetos",[49,53,57,62,66,70,74,78,83,88,92,96,101,106,110,114],{"title":50,"path":51,"stem":52},"Repaso previo a Clases y Objetos","\u002Fclases-objetos\u002Fpreview","3.clases-objetos\u002F00.preview",{"title":54,"path":55,"stem":56,"icon":45},"¿Qué es la Programación Orientada a Objetos (POO)?","\u002Fclases-objetos\u002Fpoo","3.clases-objetos\u002F01.poo",{"title":58,"path":59,"stem":60,"icon":61},"Diagramas de Clases y Objetos","\u002Fclases-objetos\u002Fdiagramas","3.clases-objetos\u002F02.diagramas","i-devicon-uml",{"title":63,"path":64,"stem":65,"icon":45},"Las Clases","\u002Fclases-objetos\u002Fclases","3.clases-objetos\u002F03.clases",{"title":67,"path":68,"stem":69,"icon":45},"Ámbito y Visibilidad","\u002Fclases-objetos\u002Fambito","3.clases-objetos\u002F04.ambito",{"title":71,"path":72,"stem":73,"icon":45},"Declaración e Instanciación de Objetos","\u002Fclases-objetos\u002Fobjetos","3.clases-objetos\u002F05.objetos",{"title":75,"path":76,"stem":77,"icon":45},"Clases Predefinidas en Java","\u002Fclases-objetos\u002Fpredefinidas","3.clases-objetos\u002F06.predefinidas",{"title":79,"path":80,"stem":81,"icon":82},"Paquetes en Java","\u002Fclases-objetos\u002Fpaquetes","3.clases-objetos\u002F07.paquetes","i-material-icon-theme-folder-java-open",{"title":84,"path":85,"stem":86,"icon":87},"Las Excepciones","\u002Fclases-objetos\u002Fexcepciones","3.clases-objetos\u002F08.excepciones","i-catppuccin-java-exception",{"title":89,"path":90,"stem":91,"icon":45},"La clase JOptionPane","\u002Fclases-objetos\u002Fjoptionpane","3.clases-objetos\u002F09.joptionpane",{"title":93,"path":94,"stem":95,"icon":45},"Constructores y Accesores","\u002Fclases-objetos\u002Fconstructores","3.clases-objetos\u002F10.constructores",{"title":97,"path":98,"stem":99,"icon":100},"Tipos Enumerados (Enums)","\u002Fclases-objetos\u002Fenumerados","3.clases-objetos\u002F11.enumerados","i-catppuccin-java-enum",{"title":102,"path":103,"stem":104,"icon":105},"Modificadores de acceso static y final","\u002Fclases-objetos\u002Fmodificadores","3.clases-objetos\u002F12.modificadores","i-mdi-chart-box",{"title":107,"path":108,"stem":109,"icon":105},"El casting en Java","\u002Fclases-objetos\u002Fcasting","3.clases-objetos\u002F13.casting",{"title":111,"path":112,"stem":113},"Las Expresiones Regulares","\u002Fclases-objetos\u002Fexpresiones-regulares","3.clases-objetos\u002F14.expresiones-regulares",{"title":115,"path":116,"stem":117,"icon":105},"Clases Genéricas en Java","\u002Fclases-objetos\u002Fclases-genericas","3.clases-objetos\u002F15.clases-genericas",{"title":119,"icon":120,"path":121,"stem":122,"children":123,"page":42},"Funciones (Métodos)","i-material-symbols-function","\u002Fmetodos","4.metodos",[124,128,132,136,140,144,148,152,156],{"title":125,"path":126,"stem":127},"Funciones Genéricas","\u002Fmetodos\u002Ffuncion-generica","4.metodos\u002F01.funcion-generica",{"title":129,"path":130,"stem":131},"Métodos de Instancia y de Clase","\u002Fmetodos\u002Finstancia-clase","4.metodos\u002F02.instancia-clase",{"title":133,"path":134,"stem":135},"Sobrecarga de Funciones","\u002Fmetodos\u002Fsobrecarga","4.metodos\u002F03.sobrecarga",{"title":137,"path":138,"stem":139},"Alcance de Variables y Métodos","\u002Fmetodos\u002Falcance","4.metodos\u002F04.alcance",{"title":141,"path":142,"stem":143},"Recursividad","\u002Fmetodos\u002Frecursividad","4.metodos\u002F05.recursividad",{"title":145,"path":146,"stem":147},"Puntero this","\u002Fmetodos\u002Fthis","4.metodos\u002F06.this",{"title":149,"path":150,"stem":151},"Los argumentos variables (varargs)","\u002Fmetodos\u002Fvarargs","4.metodos\u002F07.varargs",{"title":153,"path":154,"stem":155},"La clase Arrays","\u002Fmetodos\u002Farrays","4.metodos\u002F08.arrays",{"title":157,"path":158,"stem":159},"Predicados Simples y Compuestos en Java","\u002Fmetodos\u002Fpredicados","4.metodos\u002F09.predicados",{"title":161,"path":162,"stem":163,"children":164,"icon":199},"Herencia","\u002Fherencia","5.herencia\u002F01.index",[165,167,171,175,179,183,187,191,195],{"title":166,"path":162,"stem":163},"¿Qué es la herencia?",{"title":168,"path":169,"stem":170},"Sobreescritura de métodos y uso de `super`","\u002Fherencia\u002Fsobeescritura","5.herencia\u002F02.sobeescritura",{"title":172,"path":173,"stem":174},"Tipos de herencia","\u002Fherencia\u002Ftipos-herencia","5.herencia\u002F03.tipos-herencia",{"title":176,"path":177,"stem":178},"La clase Object en Java","\u002Fherencia\u002Fobject","5.herencia\u002F04.object",{"title":180,"path":181,"stem":182},"Polimorfismo","\u002Fherencia\u002Fpolimorfismo","5.herencia\u002F05.polimorfismo",{"title":184,"path":185,"stem":186},"Clases y Funciones Abstractas","\u002Fherencia\u002Fabstract","5.herencia\u002F06.abstract",{"title":188,"path":189,"stem":190},"Interfaces","\u002Fherencia\u002Finterfaces","5.herencia\u002F07.interfaces",{"title":192,"path":193,"stem":194},"Funciones e Interfaces","\u002Fherencia\u002Ffunciones-interfaces","5.herencia\u002F08.funciones-interfaces",{"title":196,"path":197,"stem":198},"Interfaces y Funciones Lambda","\u002Fherencia\u002Flambda-interface","5.herencia\u002F09.lambda-interface","i-material-symbols-heritage",{"title":201,"path":202,"stem":203,"children":204,"icon":199},"Arreglos","\u002Farreglos","6.arreglos\u002F01.index",[205,207,211,215,219,223,227],{"title":206,"path":202,"stem":203},"Los arreglos en Java",{"title":208,"path":209,"stem":210},"Los arreglos","\u002Farreglos\u002Farray","6.arreglos\u002F02.array",{"title":212,"path":213,"stem":214},"Matrices","\u002Farreglos\u002Fmatrices","6.arreglos\u002F03.matrices",{"title":216,"path":217,"stem":218},"Comparadores","\u002Farreglos\u002Fcomparator","6.arreglos\u002F04.comparator",{"title":220,"path":221,"stem":222},"Arreglos dinámicos: ArrayList","\u002Farreglos\u002Farraylist","6.arreglos\u002F05.arraylist",{"title":224,"path":225,"stem":226},"Arreglos Relacionales: HashMap","\u002Farreglos\u002Fhashmap","6.arreglos\u002F06.hashmap",{"title":228,"path":229,"stem":230},"La clase Stream en Java","\u002Farreglos\u002Fstream","6.arreglos\u002F07.stream",{"title":232,"icon":199,"path":233,"stem":234,"children":235,"page":42},"Archivos e Interfaz de Usuario","\u002Farchivos-ui","7.archivos-ui",[236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316],{"title":237,"path":238,"stem":239},"El paquete Swing","\u002Farchivos-ui\u002Fswing","7.archivos-ui\u002F01.swing",{"title":241,"path":242,"stem":243},"La clase JFrame y el JPanel","\u002Farchivos-ui\u002Fjpanel","7.archivos-ui\u002F02.jpanel",{"title":245,"path":246,"stem":247},"Los Layouts en Swing","\u002Farchivos-ui\u002Flayout","7.archivos-ui\u002F03.layout",{"title":249,"path":250,"stem":251},"Iniciando con Swing","\u002Farchivos-ui\u002Finiciando","7.archivos-ui\u002F04.iniciando",{"title":253,"path":254,"stem":255},"Las clases Color y Font en Swing","\u002Farchivos-ui\u002Fcolor-font","7.archivos-ui\u002F05.color-font",{"title":257,"path":258,"stem":259},"Etiquetas en Swing","\u002Farchivos-ui\u002Fetiquetas","7.archivos-ui\u002F06.etiquetas",{"title":261,"path":262,"stem":263},"Personalizando la apariencia de los componentes en Swing","\u002Farchivos-ui\u002Fpersonalizando","7.archivos-ui\u002F07.personalizando",{"title":265,"path":266,"stem":267},"Sobrescribiendo el método drawComponent() en Swing","\u002Farchivos-ui\u002Fdraw","7.archivos-ui\u002F08.draw",{"title":269,"path":270,"stem":271},"Manejando eventos en Swing","\u002Farchivos-ui\u002Feventos","7.archivos-ui\u002F09.eventos",{"title":273,"path":274,"stem":275},"Personalización de Componentes mediante la Extensión de Clases en Swing","\u002Farchivos-ui\u002Fextends-component","7.archivos-ui\u002F10.extends-component",{"title":277,"path":278,"stem":279},"Gradientes","\u002Farchivos-ui\u002Fgradientes","7.archivos-ui\u002F11.gradientes",{"title":281,"path":282,"stem":283},"Botones en Swing","\u002Farchivos-ui\u002Fbotones","7.archivos-ui\u002F12.botones",{"title":285,"path":286,"stem":287},"Los delegadores en Swing","\u002Farchivos-ui\u002Fdelegadores","7.archivos-ui\u002F13.delegadores",{"title":289,"path":290,"stem":291},"UI para nuestro RPG: Parte 1","\u002Farchivos-ui\u002Frpg-ui-1","7.archivos-ui\u002F14.rpg-ui-1",{"title":293,"path":294,"stem":295},"UI para nuestro RPG: Parte 2","\u002Farchivos-ui\u002Frpg-ui-2","7.archivos-ui\u002F15.rpg-ui-2",{"title":297,"path":298,"stem":299},"Los Streams Entrada y Salida","\u002Farchivos-ui\u002Fstreams","7.archivos-ui\u002F16.streams",{"title":301,"path":302,"stem":303},"Archivo tipo Objeto","\u002Farchivos-ui\u002Farchivo-objeto","7.archivos-ui\u002F17.archivo-objeto",{"title":305,"path":306,"stem":307},"UI para nuestro RPG: Parte 3","\u002Farchivos-ui\u002Frpg-ui-3","7.archivos-ui\u002F18.rpg-ui-3",{"title":309,"path":310,"stem":311},"UI para nuestro RPG: Parte 4","\u002Farchivos-ui\u002Frpg-ui-4","7.archivos-ui\u002F19.rpg-ui-4",{"title":313,"path":314,"stem":315},"UI para nuestro RPG: Parte 5","\u002Farchivos-ui\u002Frpg-ui-5","7.archivos-ui\u002F20.rpg-ui-5",{"title":317,"path":318,"stem":319},"UI para nuestro RPG: Parte 6","\u002Farchivos-ui\u002Frpg-ui-6","7.archivos-ui\u002F21.rpg-ui-6",{"title":321,"icon":322,"path":323,"stem":324,"children":325,"page":42},"Ejemplos","i-check-circle","\u002Fejemplos","8.ejemplos",[326,330,334,338,342],{"title":327,"path":328,"stem":329,"icon":105},"Ejemplo 1: Validando entradas con JOptionPane","\u002Fejemplos\u002Fejemplo-01","8.ejemplos\u002F01.ejemplo-01",{"title":331,"path":332,"stem":333},"Ejemplo 02: Uso de clases genéricas en Java","\u002Fejemplos\u002Fejemplo-02","8.ejemplos\u002F02.ejemplo-02",{"title":335,"path":336,"stem":337},"Ejemplo 03: Uso de Enum, Excepciones en Java","\u002Fejemplos\u002Fejemplo-03","8.ejemplos\u002F03.ejemplo-03",{"title":339,"path":340,"stem":341},"Ejemplo 4: Clase con funciones genéricas de validación","\u002Fejemplos\u002Fejemplo-04","8.ejemplos\u002F04.ejemplo-04",{"title":343,"path":344,"stem":345},"Ejemplo 5: Sistema de Gestión de Empleados","\u002Fejemplos\u002Fejemplo-05","8.ejemplos\u002F05.ejemplo-05",{"title":347,"icon":322,"path":348,"stem":349,"children":350,"page":42},"Actividades","\u002Factividades","9.actividades",[351,355,360,364,368,372,376,380,384,388,392,396,400,404,408],{"title":352,"path":353,"stem":354,"icon":105},"Actividad 1: Infografía sobre el proceso de compilación","\u002Factividades\u002Fact-01","9.actividades\u002F01.act-01",{"title":356,"path":357,"stem":358,"icon":359},"Actividad 2: Modelando Diagramas de Clases UML","\u002Factividades\u002Fact-02","9.actividades\u002F02.act-02","i-material-icon-theme-uml",{"title":361,"path":362,"stem":363,"icon":45},"Actividad 3: Creando Clases y Objetos en Java","\u002Factividades\u002Fact-03","9.actividades\u002F03.act-03",{"title":365,"path":366,"stem":367},"Actividad 4: Validando entradas de datos","\u002Factividades\u002Fact-04","9.actividades\u002F04.act-04",{"title":369,"path":370,"stem":371,"icon":105},"Actividad 5: Implementando una clase genérica","\u002Factividades\u002Fact-05","9.actividades\u002F05.act-05",{"title":373,"path":374,"stem":375,"icon":105},"Actividad 6: Expandiendo InputValidator con Predicados y Function","\u002Factividades\u002Fact-06","9.actividades\u002F06.act-06",{"title":377,"path":378,"stem":379,"icon":105},"Actividad 7: Gestor de Biblioteca con InputValidator","\u002Factividades\u002Fact-07","9.actividades\u002F07.act-07",{"title":381,"path":382,"stem":383,"icon":105},"Actividad 8: Calculadora de Figuras Geométricas","\u002Factividades\u002Fact-08","9.actividades\u002F08.act-08",{"title":385,"path":386,"stem":387,"icon":105},"Actividad 9: gestión de una empresa agroalimentaria","\u002Factividades\u002Fact-09","9.actividades\u002F09.act-09",{"title":389,"path":390,"stem":391,"icon":105},"Actividad 10: Sistema de gestión de clínicas veterinarias","\u002Factividades\u002Fact-10","9.actividades\u002F10.act-10",{"title":393,"path":394,"stem":395},"Definición de Proyecto Evolutivo","\u002Factividades\u002Frpg","9.actividades\u002F11.rpg",{"title":397,"path":398,"stem":399},"Actividad 11: Creación de Personajes","\u002Factividades\u002Fact-11","9.actividades\u002F12.act-11",{"title":401,"path":402,"stem":403},"Actividad 12: El Inventario y los Objetos","\u002Factividades\u002Fact-12","9.actividades\u002F13.act-12",{"title":405,"path":406,"stem":407},"Actividad 13: El combate por turnos","\u002Factividades\u002Fact-13","9.actividades\u002F14.act-13",{"title":409,"path":410,"stem":411},"Actividad 14: Guardando y Cargando","\u002Factividades\u002Fact-14","9.actividades\u002F15.act-14",{"id":413,"title":188,"body":414,"description":440,"extension":832,"links":833,"meta":834,"navigation":835,"path":189,"seo":836,"stem":190,"__hash__":837},"docs\u002F5.herencia\u002F07.interfaces.md",{"type":415,"value":416,"toc":825},"minimark",[417,422,426,434,485,489,496,572,593,597,625,629,637,696,708,733,745,814,818,821],[418,419,421],"h2",{"id":420},"qué-es-una-interfaz","¿Qué es una interfaz?",[423,424,425],"p",{},"Una interfaz es un contrato que define un conjunto de métodos que una clase debe implementar. A diferencia de las clases abstractas, las interfaces no pueden contener implementaciones de métodos (hasta Java 8, donde se introdujeron los métodos predeterminados). Las interfaces se utilizan para definir un comportamiento común que puede ser implementado por diferentes clases, independientemente de su posición en la jerarquía de herencia.",[423,427,428,429,433],{},"En Java, una interfaz se declara utilizando la palabra clave ",[430,431,432],"code",{},"interface",". Por ejemplo:",[435,436,441],"pre",{"className":437,"code":438,"language":439,"meta":440,"style":440},"language-java shiki shiki-themes github-dark","public interface Animal {\n    void sound(); \u002F\u002F Método abstracto sin implementación\n}\n","java","",[430,442,443,463,479],{"__ignoreMap":440},[444,445,448,452,455,459],"span",{"class":446,"line":447},"line",1,[444,449,451],{"class":450},"snl16","public",[444,453,454],{"class":450}," interface",[444,456,458],{"class":457},"svObZ"," Animal",[444,460,462],{"class":461},"s95oV"," {\n",[444,464,466,469,472,475],{"class":446,"line":465},2,[444,467,468],{"class":450},"    void",[444,470,471],{"class":457}," sound",[444,473,474],{"class":461},"(); ",[444,476,478],{"class":477},"sAwPA","\u002F\u002F Método abstracto sin implementación\n",[444,480,482],{"class":446,"line":481},3,[444,483,484],{"class":461},"}\n",[418,486,488],{"id":487},"implementación-de-una-interfaz","Implementación de una interfaz",[423,490,491,492,495],{},"Una clase puede implementar una interfaz utilizando la palabra clave ",[430,493,494],{},"implements",". La clase que implementa la interfaz debe proporcionar una implementación para todos los métodos definidos en la interfaz. Por ejemplo:",[435,497,499],{"className":437,"code":498,"language":439,"meta":440,"style":440},"public class Dog implements Animal {\n    @Override\n    public void sound() { \u002F\u002F Implementación del método de la interfaz\n        System.out.println(\"The dog barks.\");\n    }\n}\n",[430,500,501,518,526,542,561,567],{"__ignoreMap":440},[444,502,503,505,508,511,514,516],{"class":446,"line":447},[444,504,451],{"class":450},[444,506,507],{"class":450}," class",[444,509,510],{"class":457}," Dog",[444,512,513],{"class":450}," implements",[444,515,458],{"class":457},[444,517,462],{"class":461},[444,519,520,523],{"class":446,"line":465},[444,521,522],{"class":461},"    @",[444,524,525],{"class":450},"Override\n",[444,527,528,531,534,536,539],{"class":446,"line":481},[444,529,530],{"class":450},"    public",[444,532,533],{"class":450}," void",[444,535,471],{"class":457},[444,537,538],{"class":461},"() { ",[444,540,541],{"class":477},"\u002F\u002F Implementación del método de la interfaz\n",[444,543,545,548,551,554,558],{"class":446,"line":544},4,[444,546,547],{"class":461},"        System.out.",[444,549,550],{"class":457},"println",[444,552,553],{"class":461},"(",[444,555,557],{"class":556},"sU2Wk","\"The dog barks.\"",[444,559,560],{"class":461},");\n",[444,562,564],{"class":446,"line":563},5,[444,565,566],{"class":461},"    }\n",[444,568,570],{"class":446,"line":569},6,[444,571,484],{"class":461},[423,573,574,575,578,579,582,583,586,587,589,590,592],{},"En este ejemplo, la clase ",[430,576,577],{},"Dog"," implementa la interfaz ",[430,580,581],{},"Animal"," y proporciona una implementación para el método ",[430,584,585],{},"sound()",". Esto permite que cualquier clase que implemente la interfaz ",[430,588,581],{}," tenga su propia versión del método ",[430,591,585],{},", lo que es una característica clave de la programación orientada a objetos.",[418,594,596],{"id":595},"ventajas-de-las-interfaces","Ventajas de las interfaces",[598,599,600,608,613,619],"ol",{},[601,602,603,607],"li",{},[604,605,606],"strong",{},"Abstracción",": Las interfaces permiten definir un contrato para un conjunto de métodos sin preocuparse por la implementación, lo que facilita la abstracción y el diseño de sistemas flexibles.",[601,609,610,612],{},[604,611,180],{},": Las interfaces permiten que diferentes clases implementen el mismo conjunto de métodos, lo que facilita el polimorfismo y la reutilización del código.",[601,614,615,618],{},[604,616,617],{},"Múltiples implementaciones",": Una clase puede implementar múltiples interfaces, lo que permite que una clase tenga múltiples comportamientos sin necesidad de heredar de múltiples clases, lo que no es posible en Java debido a la falta de soporte para la herencia múltiple de clases.",[601,620,621,624],{},[604,622,623],{},"Separación de responsabilidades",": Las interfaces permiten separar las responsabilidades de una clase, lo que facilita el mantenimiento y la evolución del código a lo largo del tiempo.",[418,626,628],{"id":627},"tipos-de-interfaces","Tipos de Interfaces",[598,630,631],{},[601,632,633,636],{},[604,634,635],{},"Interfaz funcional",": Una interfaz funcional es una interfaz que tiene un solo método abstracto. Las interfaces funcionales se utilizan comúnmente en programación funcional y se pueden utilizar con expresiones lambda en Java 8 y versiones posteriores. Por ejemplo:",[435,638,640],{"className":437,"code":639,"language":439,"meta":440,"style":440},"@FunctionalInterface\npublic interface Calculator {\n    int calculate(int a, int b); \u002F\u002F Método abstracto único\n}\n",[430,641,642,650,661,692],{"__ignoreMap":440},[444,643,644,647],{"class":446,"line":447},[444,645,646],{"class":461},"@",[444,648,649],{"class":450},"FunctionalInterface\n",[444,651,652,654,656,659],{"class":446,"line":465},[444,653,451],{"class":450},[444,655,454],{"class":450},[444,657,658],{"class":457}," Calculator",[444,660,462],{"class":461},[444,662,663,666,669,671,674,678,681,683,686,689],{"class":446,"line":481},[444,664,665],{"class":450},"    int",[444,667,668],{"class":457}," calculate",[444,670,553],{"class":461},[444,672,673],{"class":450},"int",[444,675,677],{"class":676},"s9osk"," a",[444,679,680],{"class":461},", ",[444,682,673],{"class":450},[444,684,685],{"class":676}," b",[444,687,688],{"class":461},"); ",[444,690,691],{"class":477},"\u002F\u002F Método abstracto único\n",[444,693,694],{"class":446,"line":544},[444,695,484],{"class":461},[598,697,698],{"start":465},[601,699,700,703,704,707],{},[604,701,702],{},"Interfaz de marcador",": Una interfaz de marcador es una interfaz que no tiene métodos, pero se utiliza para marcar o etiquetar una clase con un comportamiento específico. Por ejemplo, la interfaz ",[430,705,706],{},"Serializable"," en Java se utiliza para marcar una clase como serializable, lo que permite que sus objetos sean convertidos en un formato que pueda ser almacenado o transmitido.",[435,709,711],{"className":437,"code":710,"language":439,"meta":440,"style":440},"public interface Serializable {\n    \u002F\u002F No tiene métodos, es una interfaz de marcador\n}\n",[430,712,713,724,729],{"__ignoreMap":440},[444,714,715,717,719,722],{"class":446,"line":447},[444,716,451],{"class":450},[444,718,454],{"class":450},[444,720,721],{"class":457}," Serializable",[444,723,462],{"class":461},[444,725,726],{"class":446,"line":465},[444,727,728],{"class":477},"    \u002F\u002F No tiene métodos, es una interfaz de marcador\n",[444,730,731],{"class":446,"line":481},[444,732,484],{"class":461},[598,734,735],{"start":481},[601,736,737,740,741,744],{},[604,738,739],{},"Interfaz de tipo",": Una interfaz de tipo es una interfaz que se utiliza para definir un tipo de dato específico. Por ejemplo, la interfaz ",[430,742,743],{},"List"," en Java se utiliza para definir un tipo de dato que representa una lista de elementos.",[435,746,748],{"className":437,"code":747,"language":439,"meta":440,"style":440},"public interface List\u003CE> {\n    \u002F\u002F Métodos para manipular la lista\n    void add(E element);\n    E get(int index);\n    \u002F\u002F Otros métodos de la interfaz List\n}\n",[430,749,750,768,773,788,805,810],{"__ignoreMap":440},[444,751,752,754,756,759,762,765],{"class":446,"line":447},[444,753,451],{"class":450},[444,755,454],{"class":450},[444,757,758],{"class":457}," List",[444,760,761],{"class":461},"\u003C",[444,763,764],{"class":450},"E",[444,766,767],{"class":461},"> {\n",[444,769,770],{"class":446,"line":465},[444,771,772],{"class":477},"    \u002F\u002F Métodos para manipular la lista\n",[444,774,775,777,780,783,786],{"class":446,"line":481},[444,776,468],{"class":450},[444,778,779],{"class":457}," add",[444,781,782],{"class":461},"(E ",[444,784,785],{"class":676},"element",[444,787,560],{"class":461},[444,789,790,793,796,798,800,803],{"class":446,"line":544},[444,791,792],{"class":461},"    E ",[444,794,795],{"class":457},"get",[444,797,553],{"class":461},[444,799,673],{"class":450},[444,801,802],{"class":676}," index",[444,804,560],{"class":461},[444,806,807],{"class":446,"line":563},[444,808,809],{"class":477},"    \u002F\u002F Otros métodos de la interfaz List\n",[444,811,812],{"class":446,"line":569},[444,813,484],{"class":461},[418,815,817],{"id":816},"conclusión","Conclusión",[423,819,820],{},"Las interfaces son una herramienta fundamental en la programación orientada a objetos que permiten definir un contrato para un conjunto de métodos que una clase debe implementar. Las interfaces facilitan la abstracción, el polimorfismo y la reutilización del código, lo que las convierte en una parte esencial del diseño de sistemas flexibles y mantenibles en Java. Comprender cómo utilizar las interfaces es crucial para cualquier desarrollador de Java que busque crear aplicaciones robustas y escalables.",[822,823,824],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}",{"title":440,"searchDepth":465,"depth":465,"links":826},[827,828,829,830,831],{"id":420,"depth":465,"text":421},{"id":487,"depth":465,"text":488},{"id":595,"depth":465,"text":596},{"id":627,"depth":465,"text":628},{"id":816,"depth":465,"text":817},"md",null,{"editButton":42},true,{"title":188,"description":440},"avJOD_Ig0Gdk21fKao2IeJkPKcyLKtjpAVmGknHy3o4",[839,840],{"title":184,"path":185,"stem":186,"description":440,"children":-1},{"title":192,"path":193,"stem":194,"description":440,"children":-1},1779479570428]