OO - 基础

  1. 类与对象:一切事物皆为对象,而类是对象的属性和方法的抽象
  2. 构造函数:为实例化对象提供初始化方法,不同的构造函数使对象具备不同的初始形态,如与对象本身具有整体的生命期关系,则在构造函数中实现初始化。
  3. 方法重载:对象某一行为根据不同参数,实现不一样的行为能力
  4. 属性:属性是对象特征描述,有不被外在影响的和可受内外影响的
  5. 修饰符:对象对外公布的程度:public/protected/private...
  6. 继承:实现复用,增加耦合,必须具有is-a的关系,否则以组合方式去实现
  7. 封装:隐藏对象具体的特征和行为
  8. 多态:对象一个行为根据不同对象的重写,实现不一样的行为能力
  9. 委托与事件:事件的发生是由于委托的存在,委托只控制了事件的参数、结果和通知,而事件发生的过程,则由事件订阅者去控制。
  10. 抽象:不可自己实现的类或行为,是对现有类的再抽象或是对类的超前设计,通常是从下向上的重构设计
  11. 接口:不可自己实现的抽象行为,通常不是类本身应有的行为,而是类可具备的行为,是从上向下的预设计.在设计时,也不应将不同概念的行为统一设计在一个接口上.
  12. 重构:是对现有代码的向上提炼,往抽象方向迈进

 ===========================================

多态实现例子:

在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

public class DrawingBase 
{ 
    public virtual void Draw()
    { 
        Console.WriteLine("I'm just a generic drawing object.") ; 
    } 
}

public class Line : DrawingBase 
{ 
    public override void Draw()
    { 
        Console.WriteLine("I'm a Line.") ; 
    } 
}

public class Circle : DrawingBase 
{ 
    public override void Draw()
    { 
        Console.WriteLine("I'm a Circle.") ; 
    } 
} 

public class Square : DrawingBase 
{ 
    public override void Draw() 
    { 
        Console.WriteLine("I'm a Square.") ; 
    } 
} 

public class DrawDemo 
{ 
    public static void Main(string[] args) 
    { 
        DrawingBase [] dObj = new DrawingBase [4]; 
        dObj[0] = new Line() ; 
        dObj[1] = new Circle() ; 
        dObj[2] = new Square() ; 
        dObj[3] = new DrawingBase() ; 
        foreach(DrawingBase drawObj in dObj)
            drawObj.Draw() ;  
    } 
}

====================================================

抽象类和接口区别的例子:

abstract class Door
{
   //本身具备的行为
abstract void Open(); abstract void Close(); } interface IAlarm {
   //非本身具备的行为
void Alarm(); } class AlarmDoor : Door, IAlarm { void Open() { } void Close() { } void Alarm() { } }

 

 

 

posted @ 2011-10-12 10:54  Yu  阅读(496)  评论(0编辑  收藏  举报