• 重载还是覆写?


    重载和覆写是面向对象程序设计语言中两个基本的概念,然而这两个概念,初学者却往往混淆它们,昨天在论坛上看到有初学者把Override说成是重载,我觉得有必要再对这两个概念作一下解释。

    1.重载(Overload):

    类中定义的方法可能有不同的版本,它具有如下的特征:

    I.           方法名必须相同

    II.         参数列表必须不相同,与参数列表的顺序无关

    III.       返回值类型可以不相同

    示意代码:

    public class MyClass

    {

        
    public void Write(string _str)

        


            
    //

        }


        
    public void Write(string _str, string _target)

        


            
    //

        }


        
    public bool Write(string _str, string _target, bool _flag)

        


            
    //

        }


    }


    注意:参数列表必须不相同这一条由于泛型的出现,要特别小心。例如下面代码构成了重载,尽管它们的参数列表相同:

    public class MyClass

    {

        
    public void Write<T>(string _str)

        


            
    //

        }


        
    public void Write(string _str)

        


            
    //

        }


    }


    2.覆写(Override):

    子类中为满足自己的需要来重复定义某个方法的不同实现,它具有如下特征:

    I.           通过使用关键字Override来覆写

    II.         只有虚方法和抽象方法才能够被覆写

    III.       相同的方法名

    IV.       相同的参数列表

    V.         相同的返回值类型

    示意代码:

    public abstract class BaseClass

    {

        
    public abstract void Write(string _str);

    }


     

    public class SubClass : BaseClass

    {

        
    public override void Write(string _str)

        
    {

            
    //

        }


    }
  • 相关阅读:
    自定义Android核心服务实践
    RootExplorer怎么样获取root权限的
    android性能测试工具之dumpsys
    gettimeofday() 获取当前时间(保存在结构体timeval中)
    Android学习之Service命令的妙用
    linux内存管理之非连续物理地址分配(vmalloc)
    Android dumpsys
    Linux下进程信息的深入分析
    Android调试工具之adbs
    如何分析Android的内存使用
  • 原文地址:https://www.cnblogs.com/Terrylee/p/346128.html
Copyright © 2020-2023  润新知