您好,登錄后才能下訂單哦!
如何在C#項目中使用繼承?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
//基類 abstract class Shape { //抽象方法 計算面積 public abstract double ComputerArea(); }
//子類 繼承Shape 實現抽象方法 class Circle : Shape { private double _radius; //構造函數 public Circle(double radius) => _radius = radius; //實現抽象方法 public override double ComputerArea() { return _radius * _radius * Math.PI; } } //子類 繼承Shape 實現抽象方法 class Rectangle : Shape { private double _width; private double _height; //構造函數 public Rectangle(double width, double height) { _width = width; _height = height; } //實現抽象方法 public override double ComputerArea() { return _width * _height; } } //子類 繼承Shape 實現抽象方法 class Triangle : Shape { private double _bottom; private double _height; //構造函數 public Triangle(double bottom, double height) { _bottom = bottom; _height = height; } //實現抽象方法 public override double ComputerArea() { return _bottom * _height / 2; } }
//計算類 class Calculate { //傳入一個父類作為參數,調用方法 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); } }
實際上 如果是只有這個方法要實現的話,繼承接口也是可以的!
實例擴展:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /** * 假設我們公司有兩種程序員: * java程序員指的是用java語法寫程序的程序員,用Jpro這個類表示; * C#程序員指的是用C#語法寫程序的程序員,用Cpro這個類來表示。 * 每個類都有一個WriteCode()方法。 * 都屬于程序員,用Programmer這個類表示。 * 現在公司來了一個項目,要求派某個程序員寫一個程序。 */ 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(); } } }
C#是一個簡單、通用、面向對象的編程語言,它由微軟Microsoft開發,繼承了C和C++強大功能,并且去掉了一些它們的復雜特性,C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程從而成為.NET開發的首選語言,但它不適用于編寫時間急迫或性能非常高的代碼,因為C#缺乏性能極高的應用程序所需要的關鍵功能。
看完上述內容,你們掌握如何在C#項目中使用繼承的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。