• 接口 抽象类 应用不同与区别,抽象方法 虚方法应用不同


    接口 抽象类 应用不同与区别

     应用不同:

    1、如果所有抽象出的方法不确定性很高,就定义为接口来封装,所有方法抽象,由实现类全部实现
    2、如果部分抽象出的方法不确定性很高,就定义为抽象类来封装,能确定的方法实现,不确定的方法抽象,由实现类部分实现,部分重写(不变就不重写啦)
    3、如果所有抽象出的方法确定性很高,就定义为基础类,所有方法提供基本实现,由子类去重写(不变就不用写子类啦)

    抽象方法 虚方法应用不同:

    用我自己的话说,
    抽象方法用abstract修饰
    不允许有方法体
    必须被子类override
    只能在抽象类中


    虚方法用virtual修饰
    要有方法体,哪怕是一个分号
    可以被子类继承或者override
    除了密封类外都可以写
    如  
      
    public    abstract    class    AUser  

     {  
             
      public    abstract    UserInfo    getUser();  
       
      public    virtual    void    Save(UserInfo    info) 

       {  
                      
    //实现保存的功能  
              
    }  
      
    }  
       
      
    public    class    UserSqlServer:AUser  
      
    {  
              
    public    override    UserInfo    getUser()  
     
    {  
                        
    //一定要实现的,抽象类只给了抽象方法 
    }  
              
    //假设抽象类针对SqlServer实现的功能,这里不需要实现了. 
     }  
       

    public    class    UserOracle:AUser  

     {  
             
      public    override    UserInfo    getUser()  
        
           {  
              
               //一定要实现的,抽象类只给了抽象方法  
     
           }  
              
    //假设抽象类针对Oracle实现的功能
      
    public override void Save(UserInfo info)
     
          {  
                        
    //覆盖抽象类中的Save方法  
             
      }  
      
    }  
      
    以上只是例子,真实并不这么做.
  • 相关阅读:
    iOS.UIKit.13.UITableView -- Simple
    iOS.UIKit.12.UICollectionView
    iOS.UIKit.11.UIPickerView
    iOS.UIKit.10.UIDatePicker
    iOS.UIKit.09.UINavigationBar
    iOS.UIKit.08.UIToolbar
    iOS.UIKit.07.UIAlertView_UIActionSheet
    iOS.UIKit.06.UIProgressView_UIActivityIndicatorView
    iOS.UIKit.05.UIScrollView
    iOS.UIKit.04.UISwitch_UISegmentedControl
  • 原文地址:https://www.cnblogs.com/mili3/p/3170809.html
Copyright © 2020-2023  润新知