{"id":7171,"date":"2025-07-30T23:05:27","date_gmt":"2025-07-30T17:35:27","guid":{"rendered":"https:\/\/www.sapewmhelp.com\/?question=polymorphism"},"modified":"2025-07-31T10:35:48","modified_gmt":"2025-07-31T05:05:48","slug":"polymorphism","status":"publish","type":"question","link":"https:\/\/www.sapewmhelp.com\/?question=polymorphism","title":{"rendered":"Polymorphism in SAP ABAP"},"content":{"rendered":"<p>Polymorphism allows different classes to be treated through a common parent reference, while still calling their own version of a method at runtime.<\/p>\n<ul>\n<li><strong>When to use it:<\/strong><br \/>\nWhen you want to treat multiple objects generically, but still get their specific behavior.<\/li>\n<li>In frameworks or handlers where object types may vary.<\/li>\n<li>In real-world modeling (e.g., Animal \u2192 Dog\/Cat).<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>\u00a0Key Notes:<\/strong><br \/>\nRequires inheritance and method overriding.<\/li>\n<li>Achieved using parent class references or interfaces.<\/li>\n<li>Great for writing extensible and clean code.<\/li>\n<\/ul>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code><!--StartFragment --><span><span>REPORT\u00a0<\/span>zrep_lclclass<span>.<\/span>\r\n\r\n<span>CLASS\u00a0<\/span>cl_animal\u00a0<span>DEFINITION<\/span><span>.<\/span>\r\n\u00a0\u00a0<span>PUBLIC\u00a0<\/span><span>SECTION<\/span><span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>METHODS<\/span><span>:\u00a0<\/span>speak<span>.<\/span>\r\n<span>ENDCLASS<\/span><span>.<\/span>\r\n\r\n<span>CLASS\u00a0<\/span>cl_animal\u00a0<span>IMPLEMENTATION<\/span><span>.<\/span>\r\n\u00a0\u00a0<span>METHOD\u00a0<\/span>speak<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>WRITE<\/span><span>:\u00a0<\/span>'Animal\u00a0sound'<span>.<\/span>\r\n\u00a0\u00a0<span>ENDMETHOD<\/span><span>.<\/span>\r\n<span>ENDCLASS<\/span><span>.<\/span>\r\n\r\n<span>CLASS\u00a0<\/span>cl_dog\u00a0<span>DEFINITION\u00a0<\/span><span>INHERITING\u00a0<\/span><span>FROM\u00a0<\/span>cl_animal<span>.<\/span>\r\n\u00a0\u00a0<span>PUBLIC\u00a0<\/span><span>SECTION<\/span><span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>METHODS<\/span><span>:\u00a0<\/span>speak\u00a0<span>REDEFINITION<\/span><span>.<\/span>\r\n<span>ENDCLASS<\/span><span>.<\/span>\r\n\r\n<span>CLASS\u00a0<\/span>cl_dog\u00a0<span>IMPLEMENTATION<\/span><span>.<\/span>\r\n\u00a0\u00a0<span>METHOD\u00a0<\/span>speak<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>WRITE<\/span><span>:\u00a0<\/span>'Dog\u00a0barks'<span>.<\/span>\r\n\u00a0\u00a0<span>ENDMETHOD<\/span><span>.<\/span>\r\n<span>ENDCLASS<\/span><span>.<\/span>\r\n\r\n<span>START-OF-SELECTION<\/span><span>.<\/span>\r\n\u00a0\u00a0<span>DATA<\/span><span>:\u00a0<\/span>lo_animal\u00a0<span>TYPE\u00a0<\/span><span>REF\u00a0<\/span><span>TO\u00a0<\/span>cl_animal<span>.<\/span>\r\n\r\n\u00a0\u00a0lo_animal\u00a0<span>=\u00a0<\/span><span>NEW\u00a0<\/span>cl_dog<span>(\u00a0<\/span><span>)<\/span><span>.<\/span>\r\n\u00a0\u00a0lo_animal<span>-&gt;<\/span>speak<span>(\u00a0<\/span><span>)<\/span><span>.\u00a0\u00a0<\/span><span>\"\u00a0Outputs:\u00a0Dog\u00a0barks\u00a0(runtime\u00a0polymorphism)<\/span><\/span> <\/code><\/pre>\n<p>Output:<br \/>\n<img decoding=\"async\" class=\"content-img\" src=\"https:\/\/www.sapewmhelp.com\/wp-content\/uploads\/2025\/07\/polymorphism.png\" \/><\/p>\n<\/div>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","question-category":[174],"question_tags":[171,170,168,198,177],"class_list":["post-7171","question","type-question","status-publish","hentry","question-category-ooabap","question_tags-class","question_tags-methods","question_tags-ooabap","question_tags-polymorphism","question_tags-sap"],"_links":{"self":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question\/7171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question"}],"about":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/types\/question"}],"author":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7171"}],"wp:attachment":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7171"}],"wp:term":[{"taxonomy":"question-category","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion-category&post=7171"},{"taxonomy":"question_tags","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion_tags&post=7171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}