C#繼承之里氏替換原則分析
C#里氏替換原則
一.概念
里氏替換原則是面向?qū)ο笤O(shè)計(jì)的基本原則之一:
- 核心思想:所有引用基類(lèi)的地方必須能夠透明地使用其子類(lèi)的對(duì)象。即子類(lèi)對(duì)象可以替換基類(lèi)對(duì)象而不影響程序的正確性。
- 表現(xiàn):父類(lèi)容器可以裝載子類(lèi)對(duì)象,但子類(lèi)容器不能裝載父類(lèi)對(duì)象。
二.語(yǔ)法表現(xiàn)
//父類(lèi)容器裝載子類(lèi)對(duì)象 // Player和Monster 是GameObject的子類(lèi) GameObject player=new Player(); GameObject monster=new Monster(); //子類(lèi)容器不能裝載父類(lèi)對(duì)象 //Player p=new GameObject();
三.類(lèi)型檢查與轉(zhuǎn)換
C# 提供了is和as操作符來(lái)處理類(lèi)型檢查和轉(zhuǎn)換。
if(player is Player)
{
(player as Player).PlayerAtk();
}- is用于檢查對(duì)象是否屬于特定類(lèi)型
- as用于安全轉(zhuǎn)換,和強(qiáng)轉(zhuǎn)來(lái)相比,更加安全,as轉(zhuǎn)換失敗時(shí)會(huì)返回null。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET總結(jié)C#中7種獲取當(dāng)前路徑的方法
本文主要介紹了7種獲取當(dāng)前路徑的方法,并做了代碼演示,分享給大家,感興趣的朋友可以參考一下。2016-03-03
C#怎樣實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳
這篇文章主要介紹了C#怎樣實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳,對(duì)斷點(diǎn)續(xù)傳感興趣的同學(xué),可以參考下2021-04-04
C#使用MailAddress類(lèi)發(fā)送html格式郵件的實(shí)例代碼
這篇文章主要介紹如何使用C#的MailAddress類(lèi)發(fā)送郵件的方法,大家參考使用吧2013-11-11
C#設(shè)計(jì)模式之觀察者模式實(shí)例講解
這篇文章主要介紹了C#設(shè)計(jì)模式之觀察者模式實(shí)例講解,本文詳細(xì)講解了觀察者模式的定義、優(yōu)缺點(diǎn)、代碼實(shí)例等,需要的朋友可以參考下2014-10-10
C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個(gè)線(xiàn)程
本文主要介紹了C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個(gè)線(xiàn)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
C#多線(xiàn)程系列之a(chǎn)sync和await用法詳解
本文詳細(xì)講解了C#多線(xiàn)程中async和await的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02

