[{"data":1,"prerenderedAt":681},["ShallowReactive",2],{"navigation_docs":3,"-herencia-abstract":412,"-herencia-abstract-surround":677},[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":184,"body":414,"description":440,"extension":672,"links":673,"meta":674,"navigation":492,"path":185,"seo":675,"stem":186,"__hash__":676},"docs\u002F5.herencia\u002F06.abstract.md",{"type":415,"value":416,"toc":666},"minimark",[417,422,426,434,541,545,548,611,629,633,655,659,662],[418,419,421],"h2",{"id":420},"clases-abstractas","Clases Abstractas",[423,424,425],"p",{},"Una clase abstracta es una clase que no puede ser instanciada directamente y que se utiliza como base para otras clases. Las clases abstractas pueden contener métodos abstractos, que son métodos sin implementación que deben ser implementados por las clases derivadas. Las clases abstractas también pueden contener métodos concretos, que son métodos con implementación que pueden ser utilizados por las clases derivadas.",[423,427,428,429,433],{},"En Java, una clase se declara como abstracta utilizando la palabra clave ",[430,431,432],"code",{},"abstract",". Por ejemplo:",[435,436,441],"pre",{"className":437,"code":438,"language":439,"meta":440,"style":440},"language-java shiki shiki-themes github-dark","public abstract class Animal {\n    public abstract void sound(); \u002F\u002F Método abstracto sin implementación\n\n    public void eat() { \u002F\u002F Método concreto con implementación\n        System.out.println(\"This animal eats food.\");\n    }\n}\n","java","",[430,442,443,466,487,494,510,529,535],{"__ignoreMap":440},[444,445,448,452,455,458,462],"span",{"class":446,"line":447},"line",1,[444,449,451],{"class":450},"snl16","public",[444,453,454],{"class":450}," abstract",[444,456,457],{"class":450}," class",[444,459,461],{"class":460},"svObZ"," Animal",[444,463,465],{"class":464},"s95oV"," {\n",[444,467,469,472,474,477,480,483],{"class":446,"line":468},2,[444,470,471],{"class":450},"    public",[444,473,454],{"class":450},[444,475,476],{"class":450}," void",[444,478,479],{"class":460}," sound",[444,481,482],{"class":464},"(); ",[444,484,486],{"class":485},"sAwPA","\u002F\u002F Método abstracto sin implementación\n",[444,488,490],{"class":446,"line":489},3,[444,491,493],{"emptyLinePlaceholder":492},true,"\n",[444,495,497,499,501,504,507],{"class":446,"line":496},4,[444,498,471],{"class":450},[444,500,476],{"class":450},[444,502,503],{"class":460}," eat",[444,505,506],{"class":464},"() { ",[444,508,509],{"class":485},"\u002F\u002F Método concreto con implementación\n",[444,511,513,516,519,522,526],{"class":446,"line":512},5,[444,514,515],{"class":464},"        System.out.",[444,517,518],{"class":460},"println",[444,520,521],{"class":464},"(",[444,523,525],{"class":524},"sU2Wk","\"This animal eats food.\"",[444,527,528],{"class":464},");\n",[444,530,532],{"class":446,"line":531},6,[444,533,534],{"class":464},"    }\n",[444,536,538],{"class":446,"line":537},7,[444,539,540],{"class":464},"}\n",[418,542,544],{"id":543},"funciones-abstractas","Funciones Abstractas",[423,546,547],{},"Una función abstracta es un método que se declara sin una implementación en una clase abstracta. Las funciones abstractas deben ser implementadas por las clases derivadas que heredan de la clase abstracta. Esto obliga a las clases derivadas a proporcionar su propia implementación de la función, lo que permite que cada clase tenga un comportamiento específico. Por ejemplo:",[435,549,551],{"className":437,"code":550,"language":439,"meta":440,"style":440},"public class Dog extends Animal {\n    @Override\n    public void sound() { \u002F\u002F Implementación de la función abstracta\n        System.out.println(\"The dog barks.\");\n    }\n}\n",[430,552,553,569,577,590,603,607],{"__ignoreMap":440},[444,554,555,557,559,562,565,567],{"class":446,"line":447},[444,556,451],{"class":450},[444,558,457],{"class":450},[444,560,561],{"class":460}," Dog",[444,563,564],{"class":450}," extends",[444,566,461],{"class":460},[444,568,465],{"class":464},[444,570,571,574],{"class":446,"line":468},[444,572,573],{"class":464},"    @",[444,575,576],{"class":450},"Override\n",[444,578,579,581,583,585,587],{"class":446,"line":489},[444,580,471],{"class":450},[444,582,476],{"class":450},[444,584,479],{"class":460},[444,586,506],{"class":464},[444,588,589],{"class":485},"\u002F\u002F Implementación de la función abstracta\n",[444,591,592,594,596,598,601],{"class":446,"line":496},[444,593,515],{"class":464},[444,595,518],{"class":460},[444,597,521],{"class":464},[444,599,600],{"class":524},"\"The dog barks.\"",[444,602,528],{"class":464},[444,604,605],{"class":446,"line":512},[444,606,534],{"class":464},[444,608,609],{"class":446,"line":531},[444,610,540],{"class":464},[423,612,613,614,617,618,621,622,625,626,628],{},"En este ejemplo, la clase ",[430,615,616],{},"Dog"," hereda de la clase abstracta ",[430,619,620],{},"Animal"," y proporciona una implementación para la función abstracta ",[430,623,624],{},"sound()",". Esto permite que cada clase derivada tenga su propia versión del método ",[430,627,624],{},", lo que es una característica clave de la programación orientada a objetos.",[418,630,632],{"id":631},"reglas-de-la-herencia-con-clases-abstractas","Reglas de la herencia con clases abstractas",[634,635,636,640,643,646,649,652],"ol",{},[637,638,639],"li",{},"Una clase abstracta no puede ser instanciada directamente.",[637,641,642],{},"Una clase abstracta puede contener métodos abstractos y concretos.",[637,644,645],{},"Las clases derivadas de una clase abstracta deben implementar todos los métodos abstractos de la clase base, a menos que la clase derivada también sea abstracta.",[637,647,648],{},"Las clases derivadas pueden utilizar los métodos concretos de la clase abstracta sin necesidad de implementarlos, a menos que deseen sobrescribirlos para proporcionar una implementación específica.",[637,650,651],{},"Una clase abstracta puede tener constructores, pero no pueden ser utilizados para crear instancias de la clase abstracta. Sin embargo, los constructores pueden ser llamados por las clases derivadas para inicializar los atributos heredados.",[637,653,654],{},"Una clase abstracta puede implementar interfaces y proporcionar implementaciones para los métodos de la interfaz, pero las clases derivadas también pueden sobrescribir estos métodos si es necesario.",[418,656,658],{"id":657},"conclusión","Conclusión",[423,660,661],{},"Las clases y funciones abstractas son herramientas poderosas en la programación orientada a objetos que permiten definir una estructura común para un grupo de clases relacionadas. Las clases abstractas proporcionan una base para otras clases, mientras que las funciones abstractas obligan a las clases derivadas a proporcionar su propia implementación, lo que fomenta la flexibilidad y la reutilización del código. Comprender cómo utilizar las clases y funciones abstractas es esencial para diseñar sistemas robustos y mantenibles en Java.",[663,664,665],"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 pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}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);}",{"title":440,"searchDepth":468,"depth":468,"links":667},[668,669,670,671],{"id":420,"depth":468,"text":421},{"id":543,"depth":468,"text":544},{"id":631,"depth":468,"text":632},{"id":657,"depth":468,"text":658},"md",null,{"editButton":42},{"title":184,"description":440},"AhRIAHq04z6KIlS7Dbq5G85oHVleIiGH0lINfrHChn0",[678,680],{"title":180,"path":181,"stem":182,"description":679,"children":-1},"El polimorfismo es un concepto fundamental en la programación orientada a objetos que permite que una misma operación o método pueda comportarse de diferentes maneras según el contexto en el que se utilice. En otras palabras, el polimorfismo permite que un mismo código pueda trabajar con objetos de diferentes clases, siempre y cuando estas clases compartan una relación de herencia.",{"title":188,"path":189,"stem":190,"description":440,"children":-1},1779479570356]