關(guān)于C#繼承的簡單應(yīng)用代碼分析
更新時間:2021年05月23日 09:13:49 作者:只吃肉不喝酒
在本篇文章里小編給大家整理了一篇關(guān)于C#繼承的簡單應(yīng)用代碼分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
比如,現(xiàn)在有一些圖形,需要計算他們的面積,計算面積的方法都不一樣,可以這么做
聲明一個抽象類
//基類 abstract class Shape { //抽象方法 計算面積 public abstract double ComputerArea(); }
聲明子類
//子類 繼承Shape 實現(xiàn)抽象方法 class Circle : Shape { private double _radius; //構(gòu)造函數(shù) public Circle(double radius) => _radius = radius; //實現(xiàn)抽象方法 public override double ComputerArea() { return _radius * _radius * Math.PI; } } //子類 繼承Shape 實現(xiàn)抽象方法 class Rectangle : Shape { private double _width; private double _height; //構(gòu)造函數(shù) public Rectangle(double width, double height) { _width = width; _height = height; } //實現(xiàn)抽象方法 public override double ComputerArea() { return _width * _height; } } //子類 繼承Shape 實現(xiàn)抽象方法 class Triangle : Shape { private double _bottom; private double _height; //構(gòu)造函數(shù) public Triangle(double bottom, double height) { _bottom = bottom; _height = height; } //實現(xiàn)抽象方法 public override double ComputerArea() { return _bottom * _height / 2; } }
聲明計算類
//計算類 class Calculate { //傳入一個父類作為參數(shù),調(diào)用方法 public void Calc(Shape shape) { Console.WriteLine($"{shape.GetType().Name}的面積:{shape.ComputerArea()}"); } }
測試
class Program { static void Main(string[] args) { var circle = new Circle(5); var rect = new Rectangle(5, 10); var triangle = new Triangle(6, 8); var calc = new Calculate(); calc.Calc(circle); calc.Calc(rect); calc.Calc(triangle); } }
運行結(jié)果
實際上 如果是只有這個方法要實現(xiàn)的話,繼承接口也是可以的!
實例擴展:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /** * 假設(shè)我們公司有兩種程序員: * java程序員指的是用java語法寫程序的程序員,用Jpro這個類表示; * C#程序員指的是用C#語法寫程序的程序員,用Cpro這個類來表示。 * 每個類都有一個WriteCode()方法。 * 都屬于程序員,用Programmer這個類表示。 * 現(xiàn)在公司來了一個項目,要求派某個程序員寫一個程序。 */ namespace inheritApplication { //程序員類(基類) class Programmer { public string name = "我是程序員"; } //java程序員類 class Jpro { public string name = "java程序員"; public string language = "我用java語法寫代碼"; } //C程序員類 class Cpro { public string name = "C#程序員"; public string language = "我用C#語法寫代碼"; } //編寫項目類 class Pro : Programmer //繼承基類 { public void WriteProgram(Jpro program) //繼承java程序員類 { Console.WriteLine("" + program.name + ":" + name + "," + program.language + ""); } public void WriteProgram(Cpro program) { Console.WriteLine("" + program.name + ":" + name + "," + program.language + ""); } } //主程序 class Program { static void Main(string[] args) { Pro p = new Pro(); Jpro p1 = new Jpro(); p.WriteProgram(p1); Cpro p2 = new Cpro(); p.WriteProgram(p2); Console.ReadKey(); } } }
到此這篇關(guān)于關(guān)于C#繼承的簡單應(yīng)用代碼分析的文章就介紹到這了,更多相關(guān)C#繼承的簡單應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#進行圖像處理的常見方法(Bitmap,BitmapData,IntPtr)使用詳解
這篇文章主要為大家詳細(xì)介紹了C#進行圖像處理的幾個常見方法(Bitmap,BitmapData,IntPtr)具體使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-01-01詳解C#中delegate/event/EventHandler/Action/Func的使用和區(qū)別
這篇文章主要為大家詳細(xì)介紹了C#中delegate、event、EventHandler、Action和Func的使用與區(qū)別,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-04-04C#實現(xiàn)托盤程序并禁止多個應(yīng)用實例運行的方法
這篇文章主要介紹了C#實現(xiàn)托盤程序并禁止多個應(yīng)用實例運行的方法,涉及C#中NotifyIcon控件的使用及設(shè)置標(biāo)志位控制程序只運行一個的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11