存在于基类相同的点子,隐藏某个对象的与其主导特点没有很大关系的所有详细信息的经过

在由基类派生出的子类中,必须有基类的不二法门(行为),而且有两样的格局完结。
  
那种气象下行使抽象方法。抽象方法没有方法体的落实.虚方法有方法体的落实。
  
  
在由基类派生出的子类中,存在于基类相同的措施,但恐怕有两样的艺术完成。
   那种气象用虚方法。

一、封装:隐藏某个对象的与其主导特点没有很大关系的装有详细音讯的经过。

   —
   语言表述的力量太差,举个例证:
 
   (基类)岳丈会驾驶小车(行为),
  
   当所有的子类都拥有驾驶小车的作为时,且子类驾驶的小车项目差异。
 
   那时应用抽象类。
 
  
当父类驾驶的轿车类型为小小车,子类1驾驶的小车项目为卡车,子类2驾驶的小车项目为小小车时。
 
   应用虚方法。

经过走访符完结

private(本类私有)、public(所有类可以共享)、protected(保养-本类和其子类可以共享)、internal(同一个品类共享)

 

二、继承:

 1。 在类中留存4中关系:继承关系、组合关系、利用关系、实例化关系

 

  如: 驾驶员  汽车    凯迪拉克小车   轮胎  我的阿斯顿·马丁小车

 

2。一个类可以将其特性和措施派生给其它类,该类叫基类(父类/超类),派生出的类叫派生类(子类)

3。 基类中的哪些属性和办法可以被派生?

 

4。构造函数的调用顺序:先调用基类的构造函数再子类的构造函数

 

泛泛基类:当基类中的某个函数函数体不可以兑现时宣称称抽象函数,

 

架空函数语法:

访问符  abstract 回到类型 函数名(参数);//没有函数体

 

当类中的某个函数为架空函数时,该类必须是空泛的,无法创造抽象类的实例

 

抽象函数在子类中务必达成函数体

子类中贯彻时:

访问符  override 重回类型 函数名(参数)

{…}

 

5.虚函数:

倘使基类的中的某个函数允许子类重写该函数的功用,则该函数应该申明为虚函数

品质、方法、函数都足以注解为virtual

分子变量和静态函数、构造函数无法声称为virtual

语法:

走访符  virtual 重回类型 函数名(参数)

{…}

 

在子类中重写时:

 

做客符  override 重临类型 函数名(参数)

{…}

 

接轨的便宜:

1。重用代码

2。统一的接口

3。不难保险

 

三、多态—静态多态和动态多态

 

1。静态多态:静态多态指一个实体,它同时设有于各类花样中.通过函数重载完毕

函数重载是为类中的八个或多个函数使用同一名字的经过

函数重载的尺度:

函数名相同的函数必须满意:函数的参数数量分化 或 参数类型分歧或参数顺序不一致

        

int sum(int a,float b)

int sum(int a,int b,int c)

float sum(float a,float b)

void sum(float a,int b)

double add(double a,double b)

 

2.动态多态

动态多态中,函数执行的控制是在运行时展开的

 

C#运用二种方法来兑现动态多态:抽象类和  虚函数

 

class A

{

   private int a1;

   protected  int a2;

 

   public A(int a1,int a2)

   {

      this.a1=a1;

      this.a2=a2;

   }

   public virtual void Display()

{

    Console.WriteLine(“a1={0},a2={1}”,a1,a2);

}

 

}

 

class B:A

{

   private int b1;

   public B(int a):base(0,a)

   {  }

   public B(int a2,int b):base(0,a2)

   public  override void Display()

{

    base.Display();

    Console.WriteLine(“b1={0}”,b1);

}

 

}

A  a=new A();

 

a.Display();

 

a=new B(10);

 

a.Display();

 

 

四、接口

接口在您想让前边的类都遵循标准的函数结构的时候被采纳,那里类将落到实处效益

接口定义属性、方法和事件,它们被称作接口的分子。

interface关键字表明接口。

接口成员总是公有的。

你可以仅在接口中声称方法、函数和性质。你不可能在接口中宣称变量。

接口注解方法,它被类完成。类可以从单个类继承但可以已毕多少个接口。

五个非亲非故的类可以兑现同一个接口

抓获毫无干系联类的相似性,而无须狠抓类关系

如:

<<interface>>

Runner

 

+start()

+run()

+stop()

 

Person

 

+start()

+run()

+stop()

+dance()

 

Car

 

+start()

+run()

+stop()

+fillFuel()

+crack()

 

Bird

 

+start()

+run()

+stop()

+fly()