{"id":94076,"date":"2025-02-06T09:43:40","date_gmt":"2025-02-06T09:43:40","guid":{"rendered":"https:\/\/arquiconsult.com\/?p=94076"},"modified":"2025-03-06T09:45:34","modified_gmt":"2025-03-06T09:45:34","slug":"bc-extend-al-interfaces","status":"publish","type":"post","link":"https:\/\/arquiconsult.com\/en\/bc-extend-al-interfaces\/","title":{"rendered":"#70 BC EXTEND AL INTERFACES"},"content":{"rendered":"<div class=\"services_vertical horizontal_services row\" style=\"background-color: #f7f7f7; padding: 25px; border-radius: 5px; text-align: justify;\">\n<p>An interface is a syntactical contract that specifies the functionalities a certain object must have, while enabling multiple implementations as long as they comply with the defined interface. Thus, from BC25, Microsoft allows the extension of Interfaces, giving developers the chance of introducing new functionalities without modifying the core solution.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Extensible interfaces provide substantial business value by facilitating the development of flexible and adaptable extensions that can evolve with changing business requirements, saving time, reducing costs and minimizing the risk of errors in the existing code.<\/p>\n<p>&nbsp;<\/p>\n<p>In the declaration of an interface, you can extend one or more interfaces.\u00a0 The new interface will inherit all the methods of the interfaces it extends. This way, both the methods from the extended interfaces as the ones from the new interface must be addressed when implementing an interface that extends others.<\/p>\n<p>&nbsp;<\/p>\n<p>Example<\/p>\n<p><img loading=\"lazy\" class=\"size-medium wp-image-94080 aligncenter\" src=\"https:\/\/arquiconsult.com\/wp-content\/uploads\/2025\/02\/Example-558x480.png\" alt=\"-\" width=\"558\" height=\"480\" srcset=\"https:\/\/arquiconsult.com\/wp-content\/uploads\/2025\/02\/Example-558x480.png 558w, https:\/\/arquiconsult.com\/wp-content\/uploads\/2025\/02\/Example-320x275.png 320w, https:\/\/arquiconsult.com\/wp-content\/uploads\/2025\/02\/Example-480x413.png 480w, https:\/\/arquiconsult.com\/wp-content\/uploads\/2025\/02\/Example.png 629w\" sizes=\"(max-width: 558px) 100vw, 558px\" title=\"-\"><\/p>\n<p>&nbsp;<\/p>\n<p>As shown in the picture above, an interface (IFooBar) can extend multiple preexisting interfaces (IFoo and IBar). Thus, when implementing the new IFooBar interface, the methods defined in IFoo, IBar and IFooBar must all be implemented to comply with the interface contract.<\/p>\n<p>&nbsp;<\/p>\n<p>Other <strong>interesting links<\/strong>:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/dynamics365\/release-plan\/2024wave2\/smb\/dynamics365-business-central\/planned-features\" target=\"_blank\" rel=\"noopener\">What\u2019s new and planned for Dynamics 365 Business Central<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/dynamics365\/release-plan\/2024wave2\/smb\/dynamics365-business-central\/extend-al-interfaces?wt.mc_id=DX-MVP-5004336\" target=\"_blank\" rel=\"noopener\">Extend AL Interfaces<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/dynamics365\/business-central\/dev-itpro\/developer\/devenv-interfaces-in-al-extend\" target=\"_blank\" rel=\"noopener\">Extending AL Intefaces<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<!--themify_builder_content-->\n<div id=\"themify_builder_content-94076\" data-postid=\"94076\" class=\"themify_builder_content themify_builder_content-94076 themify_builder tf_clear\">\n    \t<!-- module_row -->\n\t<div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_nus1581 tb_first tf_clearfix\">\n\t    \t\t<div class=\"row_inner col_align_top col-count-1 tf_box tf_w tf_rel\">\n\t\t\t<div  data-lazy=\"1\" class=\"module_column tb-column col-full first tb_cai8581 tf_box\">\n\t\t\t    \t        <div class=\"tb-column-inner tf_box tf_w\">\n\t\t    <!-- module text -->\n<div  class=\"module module-text tb_9tkr581 arquitps-data  \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n    <p><script>\njQuery(\".tbp_post_month:contains(Janeiro)\").html(\"January\");\n\njQuery(\".tbp_post_month:contains(Fevereiro)\").html(\"February\");\n\n\njQuery(\".tbp_post_month:contains(Mar\u00e7o)\").html(\"March\");\n\n\njQuery(\".tbp_post_month:contains(Abril)\").html(\"April\");\n\n\njQuery(\".tbp_post_month:contains(Maio)\").html(\"May\");\n\n\njQuery(\".tbp_post_month:contains(Junho)\").html(\"June\");\n\n\njQuery(\".tbp_post_month:contains(Julho)\").html(\"July\");\n\njQuery(\".tbp_post_month:contains(Agosto)\").html(\"August\");\n\njQuery(\".tbp_post_month:contains(Setembro)\").html(\"September\");\n\njQuery(\".tbp_post_month:contains(Outubro)\").html(\"October\");\n\njQuery(\".tbp_post_month:contains(Novembro)\").html(\"November\");\n\njQuery(\".tbp_post_month:contains(Dezembro)\").html(\"December\");\t\n\n\n\n<\/script><\/p>    <\/div>\n<\/div>\n<!-- \/module text -->\t        <\/div>\n\t    \t<\/div>\n\t\t    <\/div>\n\t    <!-- \/row_inner -->\n\t<\/div>\n\t<!-- \/module_row -->\n\t\t<!-- module_row -->\n\t<div  data-anchor=\"sucesso\" data-hide-anchor=\"1\" data-lazy=\"1\" class=\"module_row themify_builder_row sucesso repeat tb_has_section tb_section-sucesso tb_741x691 tf_clearfix\" >\n\t    \t\t<div class=\"row_inner col_align_top col-count-1 tf_box tf_w tf_rel\">\n\t\t\t<div  data-lazy=\"1\" class=\"module_column tb-column col-full first tb_x8lw692 tf_box\">\n\t\t\t    \t        <div class=\"tb-column-inner tf_box tf_w\">\n\t\t    <!-- module buttons -->\n<div  class=\"module module-buttons tb_9n1t692 buttons-horizontal transparent popmake-24705 large circle tf_textc\" data-lazy=\"1\">\n    \t<div class=\"module-buttons-item tf_inline_b\">\n\t\t\t\t\t\t\t<a href=\"#\" class=\"ui builder_button tb_default_color\" >\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"tf_inline_b tf_vmiddle\">Give as a Feedback and Suggest Questions<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t    \t<\/div>\n\t<\/div>\n<!-- \/module buttons -->\n\t        <\/div>\n\t    \t<\/div>\n\t\t    <\/div>\n\t    <!-- \/row_inner -->\n\t<\/div>\n\t<!-- \/module_row -->\n\t<\/div>\n<!--\/themify_builder_content-->","protected":false},"excerpt":{"rendered":"<p>An interface is a syntactical contract that specifies the functionalities a certain object must have, while enabling multiple implementations as long as they comply with the defined interface. Thus, from BC25, Microsoft allows the extension of Interfaces, giving developers the chance of introducing new functionalities without modifying the core solution. &nbsp; Extensible interfaces provide substantial [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":94085,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2099],"tags":[2669,1339,2015],"acf":[],"_links":{"self":[{"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/posts\/94076"}],"collection":[{"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/comments?post=94076"}],"version-history":[{"count":0,"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/posts\/94076\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/media\/94085"}],"wp:attachment":[{"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/media?parent=94076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/categories?post=94076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arquiconsult.com\/en\/wp-json\/wp\/v2\/tags?post=94076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}