{"id":1043,"date":"2023-05-25T16:33:58","date_gmt":"2023-05-25T14:33:58","guid":{"rendered":"https:\/\/bitcamp.it\/blog\/?p=1043"},"modified":"2023-05-25T16:34:00","modified_gmt":"2023-05-25T14:34:00","slug":"abstract-method","status":"publish","type":"post","link":"https:\/\/bitcamp.it\/blog\/glossario\/abstract-method\/","title":{"rendered":"Abstract method"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Un <strong>metodo astratto<\/strong> \u00e8 un metodo privo di implementazione (definito in una <a href=\"https:\/\/bitcamp.it\/blog\/glossario\/abstract-class\/\" data-type=\"post\" data-id=\"1041\">classe astratta<\/a>), seguito sempre da un punto e virgola, che rappresenta un&#8217;operazione generale (esempio: {public abstract String marca(); ).<br>Spesso, i metodi astratti hanno una o pi\u00f9 implementazioni fornite separatamente, per esempio, sotto forma di sottoclassi concrete, che possono includere metodi astratti o propriet\u00e0 astratte che sono condivise dai suoi sottotipi. <br>I metodi astratti possono essere chiamati anche <strong>esistenziali<\/strong>.<br><br>Del metodo astratto viene definito solo il suo prototipo, perch\u00e9 \u00e8 compito della sottoclasse implementare correttamente il metodo. Se un metodo astratto viene esteso esso verr\u00e0 anche verr\u00e0 ereditato; infatti, solo le classi astratte e le interfacce possono contenere metodi astratti.<br><br>L\u2019<strong>utilizzo di un metodo astratto<\/strong> consente la generalizzazione al livello superiore, o superclasse, e la specificazione ai livelli inferiori, o sottoclassi. Questa gerarchia riduce al minimo la quantit\u00e0 di programmazione del metodo per ogni sottoclasse specifica. L\u2019utilizzo di questi metodi consente anche l\u2019idempotenza delle sottoclassi, il che significa che se un metodo viene implementato pi\u00f9 e pi\u00f9 volte, il risultato \u00e8 lo stesso ogni volta.<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un metodo astratto \u00e8 un metodo privo di implementazione che rappresenta un&#8217;operazione generale<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[20],"class_list":["post-1043","post","type-post","status-publish","format-standard","hentry","category-glossario","tag-a"],"_links":{"self":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/comments?post=1043"}],"version-history":[{"count":1,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1043\/revisions"}],"predecessor-version":[{"id":1044,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1043\/revisions\/1044"}],"wp:attachment":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/media?parent=1043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/categories?post=1043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/tags?post=1043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}