{"id":928,"date":"2024-04-13T12:37:57","date_gmt":"2024-04-13T15:37:57","guid":{"rendered":"https:\/\/desvendandoocodigo.com.br\/?p=928"},"modified":"2024-04-13T12:50:39","modified_gmt":"2024-04-13T15:50:39","slug":"polimorfismo-de-sobrescrita-de-metodo-em-javascript","status":"publish","type":"post","link":"https:\/\/desvendandoocodigo.com.br\/?p=928","title":{"rendered":"Polimorfismo de Sobrescrita de M\u00e9todo em JavaScript"},"content":{"rendered":"\n<p>O polimorfismo \u00e9 um dos conceitos mais poderosos da programa\u00e7\u00e3o orientada a objetos, permitindo que objetos de diferentes classes sejam tratados de maneira uniforme. Uma das formas de implementar o polimorfismo \u00e9 atrav\u00e9s da sobrescrita de m\u00e9todo, uma t\u00e9cnica que permite que uma classe filha forne\u00e7a uma implementa\u00e7\u00e3o espec\u00edfica de um m\u00e9todo que j\u00e1 est\u00e1 definido em sua classe pai. Em JavaScript, uma linguagem conhecida por sua flexibilidade e dinamicidade, a sobrescrita de m\u00e9todo \u00e9 uma t\u00e9cnica crucial para criar hierarquias de classes flex\u00edveis e extens\u00edveis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Entendendo a Sobrescrita de M\u00e9todo<\/h2>\n\n\n\n<p>Em JavaScript, a sobrescrita de m\u00e9todo permite que uma classe filha forne\u00e7a sua pr\u00f3pria implementa\u00e7\u00e3o de um m\u00e9todo que j\u00e1 est\u00e1 definido em sua classe pai. Quando um m\u00e9todo \u00e9 chamado em um objeto da classe filha, o interpretador JavaScript primeiro procura por uma implementa\u00e7\u00e3o desse m\u00e9todo na pr\u00f3pria classe filha. Se n\u00e3o encontrar, ele vai procurar na classe pai e em suas superclasses at\u00e9 encontrar uma implementa\u00e7\u00e3o adequada. Isso permite que as classes filhas substituam ou aprimorem o comportamento de m\u00e9todos herdados da classe pai, tornando o c\u00f3digo mais flex\u00edvel e adapt\u00e1vel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Benef\u00edcios da Sobrescrita de M\u00e9todo<\/h2>\n\n\n\n<ol>\n<li><strong>Flexibilidade:<\/strong> Permite que classes filhas substituam ou aprimorem o comportamento de m\u00e9todos herdados da classe pai.<\/li>\n\n\n\n<li><strong>Extensibilidade:<\/strong> Facilita a adi\u00e7\u00e3o de novos comportamentos \u00e0s subclasses sem modificar a classe pai.<\/li>\n\n\n\n<li><strong>Manutenibilidade:<\/strong> Simplifica a manuten\u00e7\u00e3o do c\u00f3digo, pois as altera\u00e7\u00f5es no comportamento de um m\u00e9todo podem ser feitas apenas na classe filha relevante.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemplo Pr\u00e1tico de Sobrescrita de M\u00e9todo em JavaScript<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Polimorfismo de Sobrescrita de M\u00e9todo em JavaScript\" width=\"960\" height=\"540\" src=\"https:\/\/www.youtube.com\/embed\/zl_uEjrXweM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>script.js<\/strong>\n\n\nclass Produto{\n\n    constructor(nome, preco){\n        \n        this.nome = nome;\n        this.preco = preco;\n    }\n\n    calcularDesconto(){\n\n        throw new Error(\"M\u00e9todo calculadDesconto() deve ser obrigat\u00f3rio\");\n    }\n}\n\nclass ProdutoEletronico extends Produto{\n\n        constructor(nome, preco, garantiaMeses){\n            super(nome, preco);\n            this.garantiaMeses = garantiaMeses;\n        }\n        calcularDesconto(){\n\n            return this.preco * 0.1;\n        }\n}\n\nclass ProdutoAlimenticio extends Produto{\n\n        constructor(nome, preco, validadeDias){\n            super(nome, preco)\n            this.validadeDias = validadeDias;\n\n        } calcularDesconto(){\n\n            return this.preco * 0.5;\n        }\n}\n\nfunction aplicarDesconto(produto){\n\n    const desconto = produto.calcularDesconto()\n    const precoComDesconto = produto.preco - desconto;\n    console.log(`Pre\u00e7o com desconto para ${produto.nome}: $${precoComDesconto.toFixed(2)}`);\n}\n\nconst  tablet = new ProdutoEletronico(\"tablet\", 1000, 10);\nconst maca = new ProdutoAlimenticio(\"maca\", 2, 3);\n\n\naplicarDesconto(tablet);\naplicarDesconto(maca);\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>O polimorfismo de sobrescrita de m\u00e9todo \u00e9 uma t\u00e9cnica poderosa em JavaScript, permitindo criar hierarquias de classes flex\u00edveis e adapt\u00e1veis. Ao entender e aplicar corretamente a sobrescrita de m\u00e9todo em seus projetos JavaScript, voc\u00ea pode escrever c\u00f3digo mais modular, reutiliz\u00e1vel e f\u00e1cil de manter.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O polimorfismo \u00e9 um dos conceitos mais poderosos da programa\u00e7\u00e3o orientada a objetos, permitindo que objetos de diferentes classes sejam tratados de maneira uniforme. Uma das formas de implementar o polimorfismo \u00e9 atrav\u00e9s da sobrescrita de m\u00e9todo, uma t\u00e9cnica que permite que uma classe filha forne\u00e7a uma implementa\u00e7\u00e3o espec\u00edfica de um m\u00e9todo que j\u00e1 est\u00e1 definido em sua classe pai. Em JavaScript, uma linguagem conhecida por sua flexibilidade e dinamicidade, a sobrescrita de m\u00e9todo \u00e9 uma t\u00e9cnica crucial para criar hierarquias de classes flex\u00edveis e extens\u00edveis. Entendendo a Sobrescrita de M\u00e9todo Em JavaScript, a sobrescrita de m\u00e9todo permite que uma classe filha forne\u00e7a sua pr\u00f3pria implementa\u00e7\u00e3o de um m\u00e9todo que j\u00e1 est\u00e1 definido em sua classe pai. Quando um m\u00e9todo \u00e9 chamado em um objeto da classe filha, o interpretador JavaScript primeiro procura por uma implementa\u00e7\u00e3o desse m\u00e9todo na pr\u00f3pria classe filha. Se n\u00e3o encontrar, ele vai procurar na classe pai e em suas superclasses at\u00e9 encontrar uma implementa\u00e7\u00e3o adequada. Isso permite que as classes filhas substituam ou aprimorem o comportamento de m\u00e9todos herdados da classe pai, tornando o c\u00f3digo mais flex\u00edvel e adapt\u00e1vel. Benef\u00edcios da Sobrescrita de M\u00e9todo Exemplo Pr\u00e1tico de Sobrescrita de M\u00e9todo em JavaScript Conclus\u00e3o O polimorfismo de sobrescrita de m\u00e9todo \u00e9 uma t\u00e9cnica poderosa em JavaScript, permitindo criar hierarquias de classes flex\u00edveis e adapt\u00e1veis. Ao entender e aplicar corretamente a sobrescrita de m\u00e9todo em seus projetos JavaScript, voc\u00ea pode escrever c\u00f3digo mais modular, reutiliz\u00e1vel e f\u00e1cil de manter.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/928"}],"collection":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=928"}],"version-history":[{"count":2,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/928\/revisions"}],"predecessor-version":[{"id":930,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/928\/revisions\/930"}],"wp:attachment":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}