{"id":1868,"date":"2018-02-05T08:14:48","date_gmt":"2018-02-05T13:14:48","guid":{"rendered":"https:\/\/www.manualjava.net\/?p=1868"},"modified":"2018-02-09T13:45:02","modified_gmt":"2018-02-09T18:45:02","slug":"sobreescritura-de-metodos","status":"publish","type":"post","link":"https:\/\/www.manualjava.net\/?p=1868","title":{"rendered":"Sobreescritura de m\u00e9todos"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-1914 alignnone\" src=\"https:\/\/www.manualjava.net\/wp-content\/uploads\/2018\/02\/java23-300x116.png\" alt=\"\" width=\"282\" height=\"109\" srcset=\"https:\/\/www.manualjava.net\/wp-content\/uploads\/2018\/02\/java23-300x116.png 300w, https:\/\/www.manualjava.net\/wp-content\/uploads\/2018\/02\/java23.png 321w\" sizes=\"(max-width: 282px) 100vw, 282px\" \/><\/p>\n<p><span style=\"color: #000000;\">La sobreescritura de m\u00e9todos, tambi\u00e9n llamada redefinici\u00f3n de m\u00e9todos, este concepto se utiliza en herencia. Cuando una clase hereda de otra, el comportamiento de los m\u00e9todos se ajusta las exigencias de la nueva clase. En estos casos, la subclase debe escoger por volver a <strong>reescribir el m\u00e9todo heredado<\/strong>, es lo que lo que se denomina sobreescritura de un m\u00e9todo. Para identificar un m\u00e9todo sobreescrito es cuando tiene una anotaci\u00f3n <strong>@override.\u00a0<\/strong>Esta anotaci\u00f3n ayuda al compilador a reconocer m\u00e9todos que se est\u00e1n sobreescribiendo en una subclase.<\/span><!--more--><\/p>\n<h3><span style=\"color: #000000;\"><strong>Ejemplo<\/strong><\/span><\/h3>\n<p><span style=\"color: #000000;\">\u00a0public class Vehiculo {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ superclase<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 public void conducir(){<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0System.out.println(\u00abConducir un veh\u00edculo\u00bb);<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0}<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0public class Trailer extends Vehiculo{\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ subclase<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 @Override<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 public void conducir(){<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0System.out.println(\u00abConducir un trailer\u00bb);<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<\/span><br \/>\n<span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0}<\/span><\/p>\n<p><span style=\"color: #000000;\">Observemos que la clase Trailer hereda de la clase Veh\u00edculo, la clase o superclase Veh\u00edculo tiene el m\u00e9todo conducir con una declaraci\u00f3n distinta del m\u00e9todo conducir de la clase o subclase Trailer, al tener la anotaci\u00f3n @Override nos indica que el m\u00e9todo conducir de la clase Trailer se est\u00e1 sobreescribiendo, y se le puede dar funcionalidad diferente al m\u00e9todo conducir de la clase o superclase Veh\u00edculo.<\/span><\/p>\n<h3><span style=\"color: #000000;\"><strong>Reglas b\u00e1sicas de formaci\u00f3n de m\u00e9todos sobreescritos<\/strong><\/span><\/h3>\n<ol>\n<li><span style=\"color: #000000;\">La lista de par\u00e1metros del m\u00e9todo debe ser exactamente la misma.<\/span><\/li>\n<li><span style=\"color: #000000;\">El tipo de valor de retorno debe de ser el mismo.<\/span><\/li>\n<li><span style=\"color: #000000;\">No se puede sobreescibir un m\u00e9todo definido como\u00a0<strong>est\u00e1tico<\/strong>\u00a0(<strong>static<\/strong>).<\/span><\/li>\n<li><span style=\"color: #000000;\">No se puede sobreescibir un m\u00e9todo definido como\u00a0<strong>final<\/strong>.<\/span><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La sobreescritura de m\u00e9todos, tambi\u00e9n llamada redefinici\u00f3n de m\u00e9todos, este concepto se utiliza en herencia. Cuando una clase hereda de otra, el comportamiento de los m\u00e9todos se ajusta las exigencias de la nueva clase. En estos casos, la subclase debe escoger por volver a reescribir el m\u00e9todo heredado, es lo que lo que se denomina &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.manualjava.net\/?p=1868\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1914,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts\/1868"}],"collection":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1868"}],"version-history":[{"count":12,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts\/1868\/revisions"}],"predecessor-version":[{"id":1929,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/posts\/1868\/revisions\/1929"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=\/wp\/v2\/media\/1914"}],"wp:attachment":[{"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.manualjava.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}