c#使用抽象类实现多态

多态就是指不同对象收到相同消息时,会产生不同行为,同一个类在不同的场合下表现出不同的行为特征

多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。


====抽象方法使用 =====

//1.第一:父类中的虚方法没有什么可实现的。(也没有默认的实现,不需要有默认实现)

//2.第二:在实际使用当中不会new一个父类的对象,具体用到的对象肯定都是某个子类的对象。

//在这种情况下就可以考虑将虚方法变成抽象方法。


//如形状计算面积,不可能new个形状


//如果有抽象成员,类必须也标记为abstract

//不能用static修饰符

//抽象成员的访问修饰符不能写成私有的

public abstract class Shape

{

   //定义了一个抽象方法。

   //1.抽象方法没有任何具体实现,连空实现都没有。

   //2.抽象成员必须放在抽象类中。

   public abstract double GetArea();

   public abstract double Number1
   {
       get;
       set;
   }

   //抽象类中是可以有实例成员的。
   public void Say()
   {
       Console.WriteLine("hello");
   }
}


//shift + alt + F10 自动重写父类中的抽象成员

public class Circle : Shape
{
   //抽象方法,由于在父类中没有任何实现

   //所以继承抽象类的子类,【必须】将父类中的所有的抽象成员都重写

   //除非子类也是抽象类

   //抽象类就是为了重写→多态(代码重用)。

   public override double GetArea()
   {
       //计算圆的面积
       return 0;
   }
}

 

posted @ 2014-01-24 14:14  Net-Spider  阅读(489)  评论(0)    收藏  举报