抽象方法与虚方法的区别

 抽象方法  
  使用abstract关键字   public   abstract   bool   Withdraw(…);  
  抽象方法是必须被派生类覆写的方法。  
  抽象方法是可以看成是没有实现体的虚方法  
  如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法  
   
  虚方法  
  使用virtual关键字   public   virtual   bool   Withdraw(…);  
  调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。  
  虚方法可以有实现体

若一个实例方法的声明中含有       virtual       修饰符,则称该方法为虚拟方法;一个虚拟方法的实现可以由派生类取代。取代所继承的虚拟方法的实现的过程称为重写该方法;在一个虚拟方法调用中,该调用所涉及的那个实例的运行时类型确定了要被调用的究竟是该方法的哪一个实现。         
            
      虚函数的限制:        
           
      1.虚函数仅适用于有继承关系的类对象,       所以只有类的成员函数才能说明为虚函数.            
      2.静态成员函数不能是虚函数.            
      3.内联函数不能是虚函数.            
      4构造函数不能是虚函数.            
      5.析构函数可以是虚函数.

虚方法可以被子类override,抽象方法一定要被子类override。  

 

  转自:http://topic.csdn.net/t/20061101/21/5126336.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值