C#繼承之里氏替換原則分析
更新時(shí)間:2025年05月21日 15:24:06 作者:虛芷望空
這篇文章主要介紹了C#繼承之里氏替換原則,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
C#里氏替換原則
一.概念
里氏替換原則是面向?qū)ο笤O(shè)計(jì)的基本原則之一:
- 核心思想:所有引用基類的地方必須能夠透明地使用其子類的對(duì)象。即子類對(duì)象可以替換基類對(duì)象而不影響程序的正確性。
- 表現(xiàn):父類容器可以裝載子類對(duì)象,但子類容器不能裝載父類對(duì)象。
二.語(yǔ)法表現(xiàn)
//父類容器裝載子類對(duì)象 // Player和Monster 是GameObject的子類 GameObject player=new Player(); GameObject monster=new Monster(); //子類容器不能裝載父類對(duì)象 //Player p=new GameObject();
三.類型檢查與轉(zhuǎn)換
C# 提供了is和as操作符來(lái)處理類型檢查和轉(zhuǎn)換。
if(player is Player)
{
(player as Player).PlayerAtk();
}- is用于檢查對(duì)象是否屬于特定類型
- as用于安全轉(zhuǎn)換,和強(qiáng)轉(zhuǎn)來(lái)相比,更加安全,as轉(zhuǎn)換失敗時(shí)會(huì)返回null。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#?Unity使用正則表達(dá)式去除部分富文本的代碼示例
正則表達(dá)式在我們?nèi)粘i_(kāi)發(fā)中的用處不用多說(shuō)了吧,下面這篇文章主要給大家介紹了關(guān)于C#?Unity使用正則表達(dá)式去除部分富文本的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
C#?二進(jìn)制序列化和反序列化的具體實(shí)現(xiàn)
本文主要介紹了C#?二進(jìn)制序列化和反序列化的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
C#使用foreach語(yǔ)句遍歷隊(duì)列(Queue)的方法
這篇文章主要介紹了C#使用foreach語(yǔ)句遍歷隊(duì)列(Queue)的方法,涉及foreach語(yǔ)句的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
基于C#實(shí)現(xiàn)鼠標(biāo)設(shè)置功能
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)鼠標(biāo)設(shè)置功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12
c#實(shí)現(xiàn)最簡(jiǎn)潔的快速排序(你絕對(duì)可以看懂)
這篇文章主要給大家介紹了關(guān)于利用c#實(shí)現(xiàn)如何最簡(jiǎn)潔的快速排序,實(shí)現(xiàn)的方法你絕對(duì)可以看懂,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

