• 抽象类与接口的区别


    抽象类和接口成就了面向抽象编程的设计思想,同时也是实现多台的基础技术之一。

    接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法中不能包含任何实现。

    抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能密封;如果子类没有实现所有的抽象方法,则该子类也必须声明为抽象类;

     abstract public class Animal

       //定义静态字段

        static protected int _id;

        //定义属性

        public abstract int Id{get;set;}

        //定义方法

         public abstract void Eat();

    }

    //实现抽象类

    public class Act:Animal

    {

         public override int Id

         {

            get{return _id;}

            set{_id=value;}

         }

       ///如果此处将该方法予以屏蔽,该类会报错,提示该类不实现继承的抽象方法Eat();如果想解除该错误,有两个方法,一个是继承实现Eat方法,二是将该类标记为抽象类;

         public override void Eat()

          {

            }

    }

          public interface Testdd
            { 
                //方法
                int CompareTo(object o);
                //属性
                int Test();
                //索引器
                long this[int index]{get;set;}
            }

    相同点:

      1.都不能直接被实例化,都可以通过继承实现其抽象方法;

      2.都是面向抽象编程的技术基础;

    不同点:

       1.接口支持多继承,抽象类不能实现多继承;

        2.接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法;

        3.接口可以作用于值类型和引用类型;抽象类只能作用于引用类型;

        4.抽象类不能使用new关键字,也不能被密封,因为是抽象类不能被实例化;

        5.在抽象方法声明中不能使用static或virtual修饰符; 

  • 相关阅读:
    跳槽“六要”你懂吗?[转载]
    基于RFID 技术的仓储物流入库流程设计[转载]
    RFID:物流时代的新宠儿[转载]
    WEB界面设计五种特征[转]
    全国物流快递查询网址大全
    职员想跳槽,公司应检讨[转]
    商品条码管理办法 (2005)
    让总裁夜不成眠三件事[转]
    Google地图的配色问题(以及MapBar和51ditu)
    薪酬公开还是保密[转]
  • 原文地址:https://www.cnblogs.com/xiaolifeidao/p/3817189.html
Copyright © 2020-2023  润新知