面向对象是计算机语言发展中一种重要的编程思想,是指在编程过程中模拟现实世界中事物的特性和行为的一种设计方法。
面向对象的三大基本特性是封装、继承、多态。
封装:封装是指一个对象的成员,属性或方法该对外暴露的应该设置为公共的,不该让外部知道的应该设置为私有的,封装好内部数据,防止程序的无关部分被意外的改变或者被错误使用。
继承:一个类继承另外一个类,然后继承类拥有被继承类的所有成员,继承类可称为子类或派生类,被继承类称为基类。
举例:
public class Ber{
public string Name{get;set;}
}
public class Foo:Ber{//继承
}
Foo继承了Ber,它就拥有了Ber的所有成员和对象,c#类只能单继承,一个类只能继承一个基础类,如果要实现多继承需要类之间依次继承或者使用接口。
var ber=new Foo();//实例化一个类
var name=ber.Name;
也可以可以使用组合的方式实现该功能:
public class Foo{
private Ber _ber;//组合
public Foo(Ber ber)
{
_ber=ber;
}
}
多态:是指同一类事物的同一行为具有不同表现,比如动物的呼吸,鱼用腮呼吸,也有用肺呼吸的。在编程里表现为一个接口或抽象类拥有多个不同的实现。
案例:
public interface IExport{
void Export();
}
实现1:public class ExportToText:IExport{
public void Export(){
Console.WriteLine("导出到文本文件");
}
}
实现2:public class ExportToExcel:IExport{
Console.WriteLine("导出到Excel文件");
}
实现3:public class ExportToCsv:IExport{
Console.WriteLine("导出到csv文件");
}