[{"data":1,"prerenderedAt":888},["ShallowReactive",2],{"navigation_docs":3,"-herencia-tipos-herencia":412,"-herencia-tipos-herencia-surround":884},[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":172,"body":414,"description":877,"extension":878,"links":879,"meta":880,"navigation":881,"path":173,"seo":882,"stem":174,"__hash__":883},"docs\u002F5.herencia\u002F03.tipos-herencia.md",{"type":415,"value":416,"toc":866},"minimark",[417,421,426,429,433,436,440,444,447,451,454,457,462,538,591,643,678,682,726,774,826,855,859,862],[418,419,420],"p",{},"Dentro del paradigma de la programación orientada a objetos, existen varios tipos de herencia que se utilizan para organizar y estructurar el código de manera eficiente. Cada tipo de herencia tiene sus propias características y se adapta a diferentes situaciones. A continuación, se explican los principales tipos de herencia:",[422,423,425],"h2",{"id":424},"herencia-simple","Herencia simple",[418,427,428],{},"La herencia simple es el tipo más básico de herencia, donde una clase derivada hereda de una sola clase base. En este caso, la clase derivada puede acceder a los atributos y métodos de la clase base, así como agregar sus propios atributos y métodos.",[422,430,432],{"id":431},"herencia-múltiple","Herencia múltiple",[418,434,435],{},"La herencia múltiple es un tipo de herencia en la que una clase derivada hereda de más de una clase base. Esto permite que la clase derivada combine las funcionalidades de varias clases base. Sin embargo, la herencia múltiple puede llevar a problemas como la ambigüedad si las clases base tienen métodos con el mismo nombre.",[437,438,439],"warning",{},"Java no soporta la herencia múltiple de clases, pero sí permite la implementación de múltiples interfaces, lo que proporciona una forma de lograr un comportamiento similar a la herencia múltiple sin los problemas asociados.",[422,441,443],{"id":442},"herencia-jerárquica","Herencia jerárquica",[418,445,446],{},"La herencia jerárquica es un tipo de herencia en la que varias clases derivadas heredan de una sola clase base. Esto crea una estructura en forma de árbol, donde la clase base es el nodo raíz y las clases derivadas son los nodos hijos.",[422,448,450],{"id":449},"herencia-multi-nivel","Herencia Multi nivel",[418,452,453],{},"La herencia multi nivel es un tipo de herencia en la que una clase derivada hereda de otra clase derivada, creando una cadena de herencia. En este caso, la clase derivada puede acceder a los atributos y métodos de todas las clases en la cadena de herencia.",[422,455,321],{"id":456},"ejemplos",[458,459,461],"h3",{"id":460},"herencia-jerárquica-en-java","Herencia Jerárquica en Java",[463,464,469],"pre",{"className":465,"code":466,"language":467,"meta":468,"style":468},"language-java shiki shiki-themes github-dark","public class Animal {\n    public void eat() {\n        System.out.println(\"This animal eats food.\");\n    }\n}\n","java","",[470,471,472,492,507,526,532],"code",{"__ignoreMap":468},[473,474,477,481,484,488],"span",{"class":475,"line":476},"line",1,[473,478,480],{"class":479},"snl16","public",[473,482,483],{"class":479}," class",[473,485,487],{"class":486},"svObZ"," Animal",[473,489,491],{"class":490},"s95oV"," {\n",[473,493,495,498,501,504],{"class":475,"line":494},2,[473,496,497],{"class":479},"    public",[473,499,500],{"class":479}," void",[473,502,503],{"class":486}," eat",[473,505,506],{"class":490},"() {\n",[473,508,510,513,516,519,523],{"class":475,"line":509},3,[473,511,512],{"class":490},"        System.out.",[473,514,515],{"class":486},"println",[473,517,518],{"class":490},"(",[473,520,522],{"class":521},"sU2Wk","\"This animal eats food.\"",[473,524,525],{"class":490},");\n",[473,527,529],{"class":475,"line":528},4,[473,530,531],{"class":490},"    }\n",[473,533,535],{"class":475,"line":534},5,[473,536,537],{"class":490},"}\n",[463,539,541],{"className":465,"code":540,"language":467,"meta":468,"style":468},"public class Dog extends Animal {\n    public void bark() {\n        System.out.println(\"The dog barks.\");\n    }\n}\n",[470,542,543,559,570,583,587],{"__ignoreMap":468},[473,544,545,547,549,552,555,557],{"class":475,"line":476},[473,546,480],{"class":479},[473,548,483],{"class":479},[473,550,551],{"class":486}," Dog",[473,553,554],{"class":479}," extends",[473,556,487],{"class":486},[473,558,491],{"class":490},[473,560,561,563,565,568],{"class":475,"line":494},[473,562,497],{"class":479},[473,564,500],{"class":479},[473,566,567],{"class":486}," bark",[473,569,506],{"class":490},[473,571,572,574,576,578,581],{"class":475,"line":509},[473,573,512],{"class":490},[473,575,515],{"class":486},[473,577,518],{"class":490},[473,579,580],{"class":521},"\"The dog barks.\"",[473,582,525],{"class":490},[473,584,585],{"class":475,"line":528},[473,586,531],{"class":490},[473,588,589],{"class":475,"line":534},[473,590,537],{"class":490},[463,592,594],{"className":465,"code":593,"language":467,"meta":468,"style":468},"public class Cat extends Animal {\n    public void meow() {\n        System.out.println(\"The cat meows.\");\n    }\n}  \n",[470,595,596,611,622,635,639],{"__ignoreMap":468},[473,597,598,600,602,605,607,609],{"class":475,"line":476},[473,599,480],{"class":479},[473,601,483],{"class":479},[473,603,604],{"class":486}," Cat",[473,606,554],{"class":479},[473,608,487],{"class":486},[473,610,491],{"class":490},[473,612,613,615,617,620],{"class":475,"line":494},[473,614,497],{"class":479},[473,616,500],{"class":479},[473,618,619],{"class":486}," meow",[473,621,506],{"class":490},[473,623,624,626,628,630,633],{"class":475,"line":509},[473,625,512],{"class":490},[473,627,515],{"class":486},[473,629,518],{"class":490},[473,631,632],{"class":521},"\"The cat meows.\"",[473,634,525],{"class":490},[473,636,637],{"class":475,"line":528},[473,638,531],{"class":490},[473,640,641],{"class":475,"line":534},[473,642,537],{"class":490},[418,644,645,646,649,650,653,654,657,658,661,662,664,665,668,669,671,672,668,675,677],{},"En este ejemplo, tanto la clase ",[470,647,648],{},"Dog"," como la clase ",[470,651,652],{},"Cat"," heredan de la clase ",[470,655,656],{},"Animal",", lo que demuestra la herencia jerárquica. Ambas clases derivadas pueden acceder al método ",[470,659,660],{},"eat()"," de la clase base ",[470,663,656],{},", además de tener sus propios métodos específicos (",[470,666,667],{},"bark()"," para ",[470,670,648],{}," y ",[470,673,674],{},"meow()",[470,676,652],{},").",[458,679,681],{"id":680},"herencia-multi-nivel-en-java","Herencia Multi nivel en Java",[463,683,684],{"className":465,"code":466,"language":467,"meta":468,"style":468},[470,685,686,696,706,718,722],{"__ignoreMap":468},[473,687,688,690,692,694],{"class":475,"line":476},[473,689,480],{"class":479},[473,691,483],{"class":479},[473,693,487],{"class":486},[473,695,491],{"class":490},[473,697,698,700,702,704],{"class":475,"line":494},[473,699,497],{"class":479},[473,701,500],{"class":479},[473,703,503],{"class":486},[473,705,506],{"class":490},[473,707,708,710,712,714,716],{"class":475,"line":509},[473,709,512],{"class":490},[473,711,515],{"class":486},[473,713,518],{"class":490},[473,715,522],{"class":521},[473,717,525],{"class":490},[473,719,720],{"class":475,"line":528},[473,721,531],{"class":490},[473,723,724],{"class":475,"line":534},[473,725,537],{"class":490},[463,727,728],{"className":465,"code":540,"language":467,"meta":468,"style":468},[470,729,730,744,754,766,770],{"__ignoreMap":468},[473,731,732,734,736,738,740,742],{"class":475,"line":476},[473,733,480],{"class":479},[473,735,483],{"class":479},[473,737,551],{"class":486},[473,739,554],{"class":479},[473,741,487],{"class":486},[473,743,491],{"class":490},[473,745,746,748,750,752],{"class":475,"line":494},[473,747,497],{"class":479},[473,749,500],{"class":479},[473,751,567],{"class":486},[473,753,506],{"class":490},[473,755,756,758,760,762,764],{"class":475,"line":509},[473,757,512],{"class":490},[473,759,515],{"class":486},[473,761,518],{"class":490},[473,763,580],{"class":521},[473,765,525],{"class":490},[473,767,768],{"class":475,"line":528},[473,769,531],{"class":490},[473,771,772],{"class":475,"line":534},[473,773,537],{"class":490},[463,775,777],{"className":465,"code":776,"language":467,"meta":468,"style":468},"public class Puppy extends Dog {\n    public void weep() {\n        System.out.println(\"The puppy weeps.\");\n    }\n}\n",[470,778,779,794,805,818,822],{"__ignoreMap":468},[473,780,781,783,785,788,790,792],{"class":475,"line":476},[473,782,480],{"class":479},[473,784,483],{"class":479},[473,786,787],{"class":486}," Puppy",[473,789,554],{"class":479},[473,791,551],{"class":486},[473,793,491],{"class":490},[473,795,796,798,800,803],{"class":475,"line":494},[473,797,497],{"class":479},[473,799,500],{"class":479},[473,801,802],{"class":486}," weep",[473,804,506],{"class":490},[473,806,807,809,811,813,816],{"class":475,"line":509},[473,808,512],{"class":490},[473,810,515],{"class":486},[473,812,518],{"class":490},[473,814,815],{"class":521},"\"The puppy weeps.\"",[473,817,525],{"class":490},[473,819,820],{"class":475,"line":528},[473,821,531],{"class":490},[473,823,824],{"class":475,"line":534},[473,825,537],{"class":490},[418,827,828,829,832,833,835,836,838,839,841,842,844,845,671,847,844,849,851,852,677],{},"En este ejemplo, la clase ",[470,830,831],{},"Puppy"," hereda de la clase ",[470,834,648],{},", que a su vez hereda de la clase ",[470,837,656],{},". Esto demuestra la herencia multi nivel, donde ",[470,840,831],{}," puede acceder a los métodos de ambas clases base (",[470,843,660],{}," de ",[470,846,656],{},[470,848,667],{},[470,850,648],{},"), además de tener su propio método específico (",[470,853,854],{},"weep()",[422,856,858],{"id":857},"conclusión","Conclusión",[418,860,861],{},"Los diferentes tipos de herencia en la programación orientada a objetos permiten organizar y estructurar el código de manera eficiente, facilitando la reutilización de código y la creación de jerarquías de clases. Comprender los distintos tipos de herencia y cuándo utilizarlos es esencial para escribir código limpio, eficiente y mantenible en cualquier lenguaje de programación orientado a objetos.",[863,864,865],"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 .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":468,"searchDepth":494,"depth":494,"links":867},[868,869,870,871,872,876],{"id":424,"depth":494,"text":425},{"id":431,"depth":494,"text":432},{"id":442,"depth":494,"text":443},{"id":449,"depth":494,"text":450},{"id":456,"depth":494,"text":321,"children":873},[874,875],{"id":460,"depth":509,"text":461},{"id":680,"depth":509,"text":681},{"id":857,"depth":494,"text":858},"En este artículo, se explican los diferentes tipos de herencia en programación orientada a objetos, incluyendo la herencia simple, la herencia múltiple, la herencia jerárquica, la herencia híbrida y la herencia multinivel, junto con ejemplos prácticos para ilustrar cada tipo.","md",null,{"editButton":42},true,{"title":172,"description":877},"tV_wVqjwb9g9IIlhEnzkx2pXnJ4zr2HUdUaXS8geZKU",[885,887],{"title":168,"path":169,"stem":170,"description":886,"children":-1},"En este artículo, se explica qué es la sobreescritura de métodos en programación orientada a objetos, cómo se utiliza la palabra clave `super` para acceder a los métodos de la clase base, y se proporcionan ejemplos prácticos para ilustrar estos conceptos.",{"title":176,"path":177,"stem":178,"description":468,"children":-1},1779479570039]