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