首页 > 其他 > 详细

菜鸟总结 interface abstract virtual. 的区别

时间:2014-02-20 02:40:30      阅读:332      评论:0      收藏:0      [点我收藏+]


/*----------------------------------------------------------------------*/
//接口:
1.接口是公开的public
2.接口间也可以相互继承
3.接口继承后 成员要必须被实现
public interface A
{
void add(int a,int b);
int a;
//还可以有其他的成员
}

public class B:A

{

  void add(int a,int b){return a+b;}

  private int _a;

  public int a{

    set{ _a=a;}

    get{ return _a;}

       }

}

/*-------------------------------------------------------------------------*/

//抽象类:不可实例化
//抽象类(abstract class )
1.只要有个方法是abstract ,那么该类是abstract 类;
2.abstract 方法在子类中必须有实现;在abstract 类中的abstract 方法只有声明而不能有方法体;
3.abstract 方法在子类中被实现时要加上override关键字;
4.abstract 类方法中非abstract 方法在子类中重写时加上new关键字;
//就像马这种生物,只可以派生为 千里马 汗血宝马 等
public abstract class A
{
public abstract add(int a,int b);
public int getA(){return a;};
public int a;

}

public class B:A
{
public override add(int a,int b){return a+b;};
//public new int getA(){return a*a;};


}


/*------------------------------------------------------------------------*/
//virtual 虚类
1.只要有一个方法是virtual 就是虚类
2.其中的 虚方法可以被重写或不被重写,
public class Dimensions
{
public const double PI = Math.PI;
protected double x, y;
public Dimensions()
{
}
public Dimensions(double x, double y)
{
this.x = x;
this.y = y;
}

public virtual double Area()
{
return x * y;
}
}

public class Circle : Dimensions
{
public Circle(double r) : base(r, 0)
{
}

public override double Area()
{
return PI * x * x;
}
}






菜鸟总结 interface abstract virtual. 的区别

原文:http://www.cnblogs.com/lxx-2013/p/3556067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!