{"id":889,"date":"2022-05-20T00:00:00","date_gmt":"2022-05-19T22:00:00","guid":{"rendered":"https:\/\/programaraciegas.net\/?p=889"},"modified":"2022-05-06T10:16:40","modified_gmt":"2022-05-06T08:16:40","slug":"jerarquias-de-clase-dentro-de-la-programacion-orientada-a-objetos","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=889","title":{"rendered":"Jerarqu\u00edas de clase dentro de la Programaci\u00f3n orientada a objetos"},"content":{"rendered":"<p>Como aprendimos en el art\u00edculo de <a href=\"https:\/\/programaraciegas.net\/?p=886\">fundamentos de la programaci\u00f3n orientada a objetos<\/a> existen objetos que son instancias de clases. Pero las aplicaciones reales, como la vida real, no se componen de una sola clase. Estas clases pueden estar relacionadas entre si para crear un dise\u00f1o mas complejo que permita resolver problemas m\u00e1s complejos.<\/p>\n<p>Cuando varias clases se relacionan entre si se dice que forman una jerarqu\u00eda de clases.<\/p>\n<h2>De gatos y p\u00e1jaros<\/h2>\n<p>Imaginemos que tu vecino tiene un gato llamado Silvestre. Los p\u00e1jaros y los gatos tienen campos y m\u00e9todos en com\u00fan, ambos tienen un nombre, un sexo, edad, peso, tama\u00f1o, color, comen, duermen, observan, etc. Pero tambi\u00e9n tienen diferencias, unos tienen alas y otros s\u00f3lo patas, unos p\u00edan y otros ma\u00fallan.<\/p>\n<p>Observando los atributos comunes de las clases P\u00e1jaro y Gato podemos dise\u00f1ar la clase Animal.<\/p>\n<pre>Clase Animal:<br \/><br \/>\u00a0 \u00a0 Campos:<br \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 nombre, edad, sexo, peso, tama\u00f1o, color, patas<br \/><br \/>\u00a0 \u00a0 M\u00e9todos:<br \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 respirar, comer, dormir, observar\u00a0<\/pre>\n<p>A partir de la clase Animal podemos crear las clases P\u00e1jaro y Gato atendiendo a sus diferencias.<\/p>\n<pre>Clase P\u00e1jaro<br \/><br \/>\u00a0 \u00a0 Campos:<br \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 alas, pico<br \/><br \/>\u00a0 \u00a0 M\u00e9todos:<br \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 piar, volar<br \/><br \/>Clase Gato<br \/><br \/>\u00a0 \u00a0 Campos:<br \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 dientes, orejas<br \/><br \/>\u00a0 \u00a0 M\u00e9todos:<br \/><br \/>\u00a0 \u00a0 \u00a0 \u00a0 maullar, correr<\/pre>\n<p>Las clases P\u00e1jaro y Gato heredan de la clase Animal el conjunto de campos y m\u00e9todos. La clase Animal se conoce como clase padre o superclase.<\/p>\n<p>Las clases hijas de la superclase Animal se denominan subclases. Heredan el comportamiento y el estado de su clase padre.<\/p>\n<p>La relaci\u00f3n que existe entre superclases y subclases se denomina jerarqu\u00eda de clases. Estas relaciones pueden basarse en la herencia de m\u00e9todos y campos e incluso en la modificaci\u00f3n de alguno de esos m\u00e9todos.<\/p>\n<h3>Sobreescritura de m\u00e9todos<\/h3>\n<p>Cuando una clase hija modifica un m\u00e9todo de la clase padre se dice que el m\u00e9todo est\u00e1 sobreescrito (overwrite).<\/p>\n<p>Un m\u00e9todo sobreescrito puede limitarse a sustituir por completo el m\u00e9todo de la clase padre o a mejorarlo ya que en la llamada al m\u00e9todo de la clase hija, esta clase hija internamente primero ejecuta el m\u00e9todo de la clase padre, copiando su comportamiento, y luego ejecutar m\u00e1s \u00f3rdenes mejorando el comportamiento haci\u00e9ndolo m\u00e1s espec\u00edfico para la clase hija.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como aprendimos en el art\u00edculo de fundamentos de la programaci\u00f3n orientada a objetos existen objetos que son instancias de clases. Pero las aplicaciones reales, como la vida real, no se componen de una sola clase. Estas clases pueden estar relacionadas entre si para crear un dise\u00f1o mas complejo que permita resolver problemas m\u00e1s complejos. Cuando &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=889\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abJerarqu\u00edas de clase dentro de la Programaci\u00f3n orientada a objetos\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,6],"tags":[403,87,388],"class_list":["post-889","post","type-post","status-publish","format-standard","hentry","category-metodologiafilosofia","category-programacion","tag-objetos","tag-programacion-2","tag-teoria"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=889"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/889\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=889"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=889"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}