Net复习笔记:第一章:多态

多态

  1. 什么是多态,多态就是调用不同的类的相同方法实现不同的行为
  2. 多态根据实现的方式我们可以进一步分为,基类继承试多态和接口实现试多态
  3. Net的方法多态绑定机制成就了面向对象的的多态特性

程序说明

  enum FileType

    {

        doc,

        pdf,

        txt,

        ppt

}

 

interface IFileOpen

    {

        void Open();

}

 

abstract class Files : IFileOpen

    {

        private FileType fileType;

        public FileType FileType

        {

            get { return fileType; }

        }

       public abstract void Open();

}

 

  abstract class DocFile : Files

    {

        public int GetPageCount()

        {

            return 1;

        }

}

 

class WordFile : DocFile

    {

        HttpResponse response = HttpContext.Current.Response;

        public override void Open()

        {

            response.Write("Open The Word file");

        }

    }

1.基类继承试多态:

Files myFile=new Wordfile();

myFile.Open()

myFile是一个Files类型的指针变量,保持了指向WordFile的实例引用

2.几口实现是多态

  IfileOpen myFile=new WordFile();

  myFile.Open();

  这个方式是怎么实现的:编译器首先检查myFile的类型为IfileOpen类型,然后查看调用的方法Open是否是虚方法,如果不是,就可以直接执行,如果是虚方法,就检测WoRDFile是否重写了该方法,(Open),如果重写了就调用WoRDFIle类中重写的方法,如果没有重写,就想上遍历其父类,查找是否重写该方法,直到找到第一个重写该方法调用才结束

  1. 什么是 动态绑定,:动态绑定是区别静态绑定而言的,

静态绑定:是在编译期就可以确定的关联,一般是一方法的重载来实现的,

动态绑定:一般是在运行期,通过检查虚拟方法来确定动态关联覆写的方法,一般以继承和虚方法来实现的

 

posted @ 2013-12-12 14:53  瀚海行舟  阅读(143)  评论(0编辑  收藏  举报