如何在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#项目中使用继承的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。