首页 > 其他 > 详细

C#中的抽象类

时间:2014-02-25 15:09:56      阅读:270      评论:0      收藏:0      [点我收藏+]

 

       抽象是一种很好的方法,而在C#中也为我们提供了一种很好的抽象类供我们使用。

   定义

   使用的时候只需要在一般类定义的前面加上关键字abstruct。例如

  

abstract class parent
    {
        public void sleep()
        {
            Console.WriteLine("haode");

        }

        public abstract void eat();  //抽象方法没有具体的实现
        
    }

    class child:parent
    {
        public override void eat()
        {
            Console.WriteLine("吃好一点");  //必须在继承中具体实现抽象方法
        }
    }

 

  使用起来就这么简单,但是也要注意以下抽象类的特性。

      1.不能被实例化

      2.抽象类下的抽象方法没有具体的实现,但在派生类中必须实现

      3.抽象类就是用来继承的,因此不能用sealed修饰符修饰抽象类。

 

  写到这里不知大家感觉是不是与继承类中的虚方法特别的相似。下面就谈一下两者的区别。先看两个例子。

 

  class person
    {
        public void jump() { }    //
        //public abstract void drink();  普通类中不能包含抽象类
    }

    abstract class people   //抽象类
    {
        public abstract void eat();  
    }

    class zhangsan:people   //抽象类只能被继承,不能实例化
    {
        public override void eat()
        {
            Console.WriteLine("吃点什么");//必须有具体的操作
        }
    }


   总结:

      

虚方法

抽象方法

有方法体

不允许有方法体

用virtual修饰

用abstract修饰

可以被子类override

必须被子类override

除密封外都可以重写

必须在派生类中给出具体实现


C#中的抽象类

原文:http://blog.csdn.net/luckyzhoustar/article/details/19826547

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!