目录
一、密封類與密封方法
1.密封類
![](https://i-blog.csdnimg.cn/blog_migrate/c0bc06a6ed7acbbc053061dcbe32b576.png)
該類下的方法無法被繼承
2.密封方法
這個可以在派生類中重寫後時進行方法聲明。
密封方法聲明例子:
基類定義了一個虛方法
![](https://i-blog.csdnimg.cn/blog_migrate/788d0a82404e73f61239b8d75deb45cc.png)
派生類繼承後可以在進行密封方法的聲明,寫法如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ae40eaa4b36a5b0286c3d01eae7708ae.png)
聲明後該方法不能通過該派生類在重寫該Xu方法。
總結:密封主要是為了更方便的對代碼進行維護,為了防止代碼的混亂,通過sealed關鍵字對類與方法進行聲明。
二、隱藏方法
在類繼承中,基類沒有進行特別聲明,那麼在派生類下實現的同名方法就會隱藏掉基類方法,但如果需要刻意隱藏則需要在派生類方法添加一個關鍵字new
在基類上沒有聲明:
![](https://i-blog.csdnimg.cn/blog_migrate/954c46c9bdda1f033da97ee3b6660973.png)
派生類方法同名:
![](https://i-blog.csdnimg.cn/blog_migrate/96a5e8b36a6cabf12ec31d525a1c9df8.png)
所以我們需要給派生類hide方法添加一個關鍵字new
寫法如下:
![](https://i-blog.csdnimg.cn/blog_migrate/542d53e5c4a29753b494fbf7e825b4e8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7e640d4f9b5f74a62393a4f0206ed26a.png)
總結:繼承在基類上沒有聲明virtual以及override,那麼派生類就會隱藏基類該方法。但這樣在派生類上需要用new關鍵字進行聲明,特意隱藏。
三、虛方法
虚方法就是把基类函数声明为virtual,就可以在任何派生类中重写该函数。
![](https://i-blog.csdnimg.cn/blog_migrate/255f3368742f972106871d57866bdb7f.png)
在派生类重写另外一个函数时,需要使用override关键字显示声明
如:
![](https://i-blog.csdnimg.cn/blog_migrate/57a833f8f096aa62a3b8bce9fbd3e071.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1576dbca17fa5ffb2bccb9b9baf7d572.png)
虚方法的作用
主要是可以再复用父类方法,重写后调用父类,通过base关键字
![](https://i-blog.csdnimg.cn/blog_migrate/3f0bf4fcb2e927a7278c9d790d946c93.png)
在我们派生类重写的方法下,通过base.方法名可用到我们原本的基类方法。
总结:
如果不使用虚方法,那么必须重新声明方法然后再进行自己想要的功能进行编写然后再进行调用,使用虚方法只需要在派生类中对其进行调用,这样就能让代码的逻辑变得更清晰,增加代码的维护性