{"id":4840,"date":"2024-03-14T02:00:32","date_gmt":"2024-03-14T02:00:32","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/"},"modified":"2025-07-31T14:13:12","modified_gmt":"2025-07-31T14:13:12","slug":"how-to-implement-method-overriding-and-hiding-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/","title":{"rendered":"C# Method Overriding Guide"},"content":{"rendered":"<p>In C#, method overriding and hiding are achieved through inheritance and access modifiers.<\/p>\n<ol>\n<li>Override method: When a subclass rewrites a method of the parent class, the &#8220;override&#8221; keyword can be used. The overridden method must have the same name, parameter list, and return type as the parent class method. For example:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">BaseClass<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">virtual<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Print<\/span>()<\/span>\r\n    {\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Base Class\"<\/span>);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">DerivedClass<\/span> : <span class=\"hljs-title\">BaseClass<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Print<\/span>()<\/span>\r\n    {\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Derived Class\"<\/span>);\r\n    }\r\n}\r\n\r\nBaseClass baseObj = <span class=\"hljs-keyword\">new<\/span> DerivedClass(); <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u5b50\u7c7b\u5bf9\u8c61\uff0c\u8c03\u7528\u5b50\u7c7b\u7684Print\u65b9\u6cd5<\/span>\r\nbaseObj.Print(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1a\"Derived Class\"<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Method hiding: In a subclass, hiding a method from the parent class can be done using the &#8216;new&#8217; keyword. The hidden method does not need to have the same name, parameter list, or return type as the parent class method, but it is recommended for clarity to keep them consistent to avoid confusion. An example is shown below:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">BaseClass<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Print<\/span>()<\/span>\r\n    {\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Base Class\"<\/span>);\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">DerivedClass<\/span> : <span class=\"hljs-title\">BaseClass<\/span>\r\n{\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Print<\/span>()<\/span>\r\n    {\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Derived Class\"<\/span>);\r\n    }\r\n}\r\n\r\nBaseClass baseObj = <span class=\"hljs-keyword\">new<\/span> DerivedClass(); <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u5b50\u7c7b\u5bf9\u8c61\uff0c\u8c03\u7528\u7236\u7c7b\u7684Print\u65b9\u6cd5<\/span>\r\nbaseObj.Print(); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1a\"Base Class\"<\/span>\r\n<\/code><\/pre>\n<p>Through these two methods, it is possible to achieve method overriding and hiding, allowing subclasses to customize the processing of parent class methods.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, method overriding and hiding are achieved through inheritance and access modifiers. Override method: When a subclass rewrites a method of the parent class, the &#8220;override&#8221; keyword can be used. The overridden method must have the same name, parameter list, and return type as the parent class method. For example: class BaseClass { public [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[3068,4782,4780,4781,381],"class_list":["post-4840","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c-inheritance","tag-c-method-hiding","tag-c-method-overriding","tag-c-override-keyword","tag-c-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# Method Overriding Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to implement method overriding and hiding in C# with practical examples and best practices. Master inheritance in C# programming.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Method Overriding Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to implement method overriding and hiding in C# with practical examples and best practices. Master inheritance in C# programming.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T02:00:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T14:13:12+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"C# Method Overriding Guide\",\"datePublished\":\"2024-03-14T02:00:32+00:00\",\"dateModified\":\"2025-07-31T14:13:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\"},\"wordCount\":136,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"c# inheritance\",\"C# method hiding\",\"C# method overriding\",\"C# override keyword\",\"C++ Programming\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\",\"name\":\"C# Method Overriding Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T02:00:32+00:00\",\"dateModified\":\"2025-07-31T14:13:12+00:00\",\"description\":\"Learn how to implement method overriding and hiding in C# with practical examples and best practices. Master inheritance in C# programming.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Method Overriding Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C# Method Overriding Guide - Blog - Silicon Cloud","description":"Learn how to implement method overriding and hiding in C# with practical examples and best practices. Master inheritance in C# programming.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C# Method Overriding Guide","og_description":"Learn how to implement method overriding and hiding in C# with practical examples and best practices. Master inheritance in C# programming.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T02:00:32+00:00","article_modified_time":"2025-07-31T14:13:12+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"C# Method Overriding Guide","datePublished":"2024-03-14T02:00:32+00:00","dateModified":"2025-07-31T14:13:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/"},"wordCount":136,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["c# inheritance","C# method hiding","C# method overriding","C# override keyword","C++ Programming"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/","name":"C# Method Overriding Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T02:00:32+00:00","dateModified":"2025-07-31T14:13:12+00:00","description":"Learn how to implement method overriding and hiding in C# with practical examples and best practices. Master inheritance in C# programming.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-method-overriding-and-hiding-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C# Method Overriding Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=4840"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4840\/revisions"}],"predecessor-version":[{"id":149552,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4840\/revisions\/149552"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=4840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=4840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=4840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}