C# 接口(interface 定義接口的關鍵字)

目錄

使用接口案例

接口繼承

練習


定義一個接口,在語法中與定義一個抽象類是沒有區別的,但是不允許提供接口中任意成員的實現方式,一般接口只會包含方法 、索引器和事件的聲明,?不允許聲明成員的修飾符,?public都不行 。因為接口總是共有的 ,也不能聲明虛擬和靜態。?

接口不會有構造函數 ?也不能有數據字段

接口不能被實例化

使用接口案例

定義接口? IFiy

//interface 定義接口的關鍵字
internal interface IFiy
{//定義沒有實現的方法//飛  可以有參數void Fly();//攻擊void Attack();}

定義一個Plane飛機類繼承 IFiy接口

internal class Plane : IFiy
{public void Attack(){Console.WriteLine("飛機在空中戰斗");}public void Fly(){Console.WriteLine("飛機在空中飛");}
}

定義一個?Brid鳥類繼承 IFiy接口,接口可以被多個類繼承

internal class Brid : IFiy
{public void Fly(){Console.WriteLine("小鳥在空中飛");}public void Attack(){Console.WriteLine("小鳥在空中捕獵");}
}

主函數

static void Main(string[] args)
{// 接口不會有構造函數  也不能有數據字段Plane plane = new Plane();plane.Fly();//接口不能被實例化;//使用接口的具體操作IFiy fiy;fiy = new Plane();fiy.Fly();// 飛機的飛fiy = new Brid();fiy.Fly();//小鳥的飛//使用接口創建一個變量  寫了兩個構造 這在編程中叫做多態  
//因為fiy發生了變化 之前是飛機  后面變成了小鳥  所以他的形態是可以變化的 這種語法在C#中叫做  多態
}

接口繼承

接口與接口之間的繼承

internal interface Interface1
{void YY();
}
internal interface Interface2
{void cy();
}
//接口與接口之間的繼承
internal interface Interface3 : Interface1 , Interface2
{void Show();
}
 //接口Interface3中含有三種方法,一個自己的兩個繼承的
internal class Class1 : Interface3{public void cy(){throw new NotImplementedException();}public void Show(){throw new NotImplementedException();}public void YY(){throw new NotImplementedException();}}
//定義一個抽象類模板
internal abstract class Student
{public int Id { get; set; }public string Name { get; set; }public string Addres {  get; set; }public string Phone {  get; set; }public int  Age { get; set; }  
}
 // ,Interface1 接口繼承//在繼承中 除了第一個要繼承的類或則是接口使用:  后面再繼承的接口要使用逗號隔開// 類是不允許多繼承的  每個類只能有一個基類internal class Yse : Student, Interface1 , Interface2{public Yse(string name) {Name = name;}public void YY(){Console.WriteLine($"{Name}是會游泳的學生");}public void cy(){Console.WriteLine($"{Name}會唱歌");}}
internal class No : Student , Interface2
{public void cy(){Console.WriteLine($"{Name}會跳舞");}
}
static void Main(string[] args)
{Yse y = new Yse("張三");y.Name = "張三";y.YY();y.cy();Interface1 i;i = new Yse("張三");i.YY();// 接口的多態Interface1 i1;i1 = new Yse("李四");i1.YY();}

練習

定義一個接口用來做數學運算 既可以做加法也可以做減法 ?通過具體的數學操作類(加法類 減法類)去實現接口中的方法 完成操作 ?提示:運用接口的多態性

主函數

internal class Program
{static void Main(string[] args){Math m;m = new Add();Console.WriteLine(m.Maths(10,20)); // 30  加法  m = new Sub();Console.WriteLine(m.Maths(10,20)); // -10  減法}
}

創建一個Math接口

internal interface Math
{double Maths(double a , double b);}

加法類

internal class Add :Math
{public double Maths(double a,double b){return a + b;}
}

減法類

internal class Sub : Math
{public double Maths(double a, double b){return a - b;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90821.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5190 - 提高:DFS序和歐拉序:樹上操作(區域修改1)

題目傳送門 時間限制 : 2 秒 內存限制 : 256 MB 有一棵點數為 N 的樹,以點 1 為根,且樹點有邊權。然后有 M 個 操作,分為三種: 操作 1 :把某個節點 x 的點權增加 a 。 操作 2 :把某個節點 x 為根的子樹中…

【Oracle】數據泵

ORACLE數據庫 數據泵 核心參數全解析 ORACLE expdp 命令使用詳解 1.ATTACH[schema_name.]job_name Schema_name 用于指定方案名,job_name 用于指定導出作業名.注意,如果使用 ATTACH 選項,在命令行除了連接字符串和 ATTACH 選項外,不能指定任何其他選項,示例如下: expdp hr/hr A…

機器學習的算法有哪些?

🌟 歡迎來到AI奇妙世界! 🌟 親愛的開發者朋友們,大家好!👋 我是人工智能領域的探索者與分享者,很高興在CSDN與你們相遇!🎉 在這里,我將持續輸出AI前沿技術、實…

【計算機網絡】OSI七層模型

OSI七層模型為什么需要OSI七層模型?OSI七層模型具體是什么?Layer7:應用層(Application Layer)Layer6:表示層(Presentation Layer)Layer5:會話層(Session Laye…

RS485轉Profinet網關配置指南:高效啟動JRT激光測距傳感器測量模式

RS485轉Profinet網關配置指南:高效啟動JRT激光測距傳感器測量模式RS485轉Profinet網關:讓JRT激光測距傳感器高效開啟測量模式在工業自動化場景中,設備間的高效通信是實現精準控制的關鍵。RS485轉Profinet網關作為連接傳統RS485設備與現代Prof…

「日拱一碼」040 機器學習-不同模型可解釋方法

目錄 K最近鄰(KNN) - 基于距離的模型 決策邊界可視化 查看特定樣本的最近鄰 ?隨機森林(RF) - 樹模型 feature_importances_ SHAP值分析 可視化單棵樹 多層感知器(MLP) - 神經網絡 部分依賴圖 LIME解釋器 權重可視化 支持向量回歸(SVR) - 核方法 支持向量可視化 部…

編程與數學 03-002 計算機網絡 09_傳輸層功能

編程與數學 03-002 計算機網絡 09_傳輸層功能一、傳輸層的作用(一)進程間通信(二)提供可靠傳輸(三)復用與分用二、TCP協議(一)TCP的連接建立與釋放(二)TCP的可…

14. Web服務器-Nginx-工作原理

文章目錄前言一、簡介二、工作原理1. 多進程架構2. 事件驅動模型3. 模塊化設計三、工作流程1. 啟動階段2. 等待連接3. 請求處理階段4. 響應構造與輸出5. 連接關閉前言 Nginx? Nginx(發音為“Engine-X”)是一款高性能的開源Web服務器軟件,同…

AP-0316:集 USB 即插即用、智能降噪于一體的多功能 AI 聲卡,重新定義清晰語音交互

AP-0316突發噪音和抗風噪測試還在為語音設備的噪音刺耳、連接復雜、功放適配麻煩而頭疼?AP-0316 多功能 AI 降噪消回音 USB 聲卡來了 —— 以 “USB 即插即用 自帶功放 智能降噪 場景適配” 四大核心優勢,將專業級語音處理技術變得簡單易用&#xff0…

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現衛星圖像識別(C#代碼,UI界面版)

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現衛星圖像識別(C#代碼,UI界面版)工業相機使用YoloV8模型實現水下魚類識別工業相機通過YoloV8模型實現衛星圖像識別的技術背景在相機SDK中獲取圖像轉換圖像的代碼分析工業相機圖像轉換…

某d的評論爬蟲學習

本教程僅用于技術研究,請確保遵守目標網站的服務條款。實際使用前應獲得官方授權,避免高頻請求影響服務器,否則可能承擔法律責任。此腳本僅攔截公開評論接口,不涉及用戶私密數據。請勿修改代碼監聽其他請求。分享一下爬某抖評論的…

SQLite 注入:理解與防御

SQLite 注入:理解與防御 引言 隨著互聯網技術的飛速發展,數據庫已成為各類應用程序的核心組成部分。SQLite 作為一款輕量級的關系型數據庫,廣泛應用于移動應用、桌面應用及嵌入式系統。然而,SQLite 數據庫也面臨著安全挑戰&#x…

Java中List集合對象去重及按屬性去重

請直接移步原文Java中List集合對象去重及按屬性去重的8種方法 只記錄自己喜歡的幾種方法 對象元素整體去重的2種方法按照對象屬性去重的4種方法 預備數據 public class ListRmDuplicate {private List<String> list;private List<Player> playerList;BeforeEac…

ADAS測試:如何用自動化手段提升VV效率

當前&#xff0c;ADAS 技術正在快速發展&#xff0c;從智能巡航控制到自動緊急制動等功能已逐漸成為汽車的標配。在不斷提升駕駛輔助能力的同時&#xff0c;系統的可靠性也受到前所未有的重視。為了確保這些關鍵系統在各種工況下都能正常運行&#xff0c;驗證與確認&#xff08…

互信息:理論框架、跨學科應用與前沿進展

1. 起源與核心定義 互信息&#xff08;Mutual Information, MI&#xff09;由克勞德香農&#xff08;Claude Shannon&#xff09; 在1948年開創性論文《A Mathematical Theory of Communication》中首次提出&#xff0c;該論文奠定了現代信息論的基礎。互信息用于量化兩個隨機…

C++模板元編程從入門到精通

之前面試被問到什么是模板元編程&#xff0c;給我問懵了…… 一、什么是模板元編程&#xff08;TMP&#xff09; 模板元編程&#xff08;Template Metaprogramming, TMP&#xff09;是一種利用C模板在編譯期執行計算和代碼生成的編程范式。它本質上是“編寫程序的程序”&#…

探秘CommonJS:Node.js模塊化核心解析

CommonJS 是 JavaScript 的模塊化規范&#xff0c;主要應用于 服務器端環境&#xff08;尤其是 Node.js&#xff09;&#xff0c;其核心目標是解決代碼組織、依賴管理和作用域隔離問題 。以下是其核心要點&#xff1a;&#x1f527; 一、核心特性同步加載 模塊通過 require() 同…

Windows 10 遠程桌面(RDP)防暴力破解BAT腳本

0x01 設置5次失敗后鎖定賬戶30分鐘 secpol.msc # 導航到: 安全設置 > 賬戶策略 > 賬戶鎖定策略 0x02 復制保存到 BlockFailedRDP.ps1 <# .DESCRIPTION 此腳本分析Windows安全日志中的RDP登錄失敗事件(ID 4625)&#xff0c; 統計每個IP的失敗次數&#xff0…

Chukonu 閱讀筆記

Chukonu&#xff1a;一個將原生計算引擎集成到 Spark 中的全功能高性能大數據框架 摘要 Apache Spark 是一種廣泛部署的大數據分析框架&#xff0c;它提供了諸如彈性、負載均衡和豐富的生態系統等吸引人的特性。然而&#xff0c;其性能仍有很大的改進空間。盡管用原生編程語言編…

51c視覺~3D~合集4

自己的原文哦~ https://blog.51cto.com/whaosoft/14084543 #VGGT-Long 首次將單目3D重建推向公里級極限&#xff01;南開、南大提出&#xff1a;分塊、循環、對齊&#xff0c;開源 近年來&#xff0c;3D視覺基礎模型&#xff08;Foundation Models&#xff09;在3D感…