• 抽象类与接口的区别


    目录 

    在进行深入了解时,先做一道题吧,检测一下自己的基本功如何

    class A
            {
                public A()
                {
                    PrintFields();
                }
                public virtual void PrintFields() { }
            }
            class B : A
            {
                int x = 1;
                int y;
                public B()
                {
                    y = -1;
                }
                public override void PrintFields()
                {
                    Console.WriteLine("x={0},y={1}", x, y);
                }
            }

    static void Main(string[] args)
            {
                B b = new B();
                b.PrintFields();

                Console.ReadLine();
            }

    这样输出结果是什么呢?点击ViewCode查看答案

    View Code
    x=1,y=0
    x=1,y=-1
    
    为什么呢?
    B b = new B()时,先执行A的构造函数,输出结果时,还没有执行B的构造函数,此时y=0
    b.PrintFields(); 这个时候已经执行过B的构造函数,此时y=-1

    抽象类与接口的对比已经有很多人写了,我就不详细介绍了,只对我目前的了解程序做一个总结

      抽象类是一类事物的抽象,比如,宝马、奔驰、奥迪都是车(抽象类)。

          接口定义一种行为:比如上面的三类车都会跑(接口),跑是每个车的行为,但是跑的具体方法有所不同。

    这个比喻这说明抽象类与接口的表现形式不同,如果想深入了解请参考以下文章

    http://kb.cnblogs.com/page/42159/

    http://www.cnblogs.com/lovemyth/archive/2008/09/08/828909.html

    这两篇文章足以能说明抽象类与接口的区别了。

  • 相关阅读:
    NT头 IMAGE_NT_HEADER
    组合框
    列表框消息大全
    滚动条
    列表框
    超级列表框
    按钮
    EDIT编辑框
    15. 三数之和
    268. 缺失数字
  • 原文地址:https://www.cnblogs.com/Fengger/p/2585401.html
Copyright © 2020-2023  润新知