您的位置:首页 > 其它

重新理解方法的重写和重载

2016-05-26 20:57 351 查看
    

      这是一个老问题,但是总觉得对这个问题理解的不深。 

     

      重写和重载常常被同时提起,实际上两者没有什么太大的关系, 重写描述的是父类和子类之间关系的特点,子类可以重写父类的方法,这种被重写的方法具有与父类相同的方法名,参数类型相同, 返回值相同,或是父类返回值的子类。

        

        而重载,描述的是一个类内部方法之间的关系。方法的关键元素包括方法名、方法体、参数、返回值, 四个元素共同定位一个类的方法,同一个方法在一个类中有且仅能出现一次,如果出现了两个方法,具有相同的方法名,而返回值和参数不同,哪怕是前一个方法返回值和参数的子类或实现类,也是不同的方法,这就是方法重载。

        
        问题来了,     

        子类为什么重写父类方法?为什么需要重载一个方法? 换句话说,当年JDK为什么要提供这两个功能? 难道只是为了方便吗?

要把这个问题弄清楚,需要从这里下手。

1.重写和重载,在编译期和运行期的执行过程

2.重写和重载到底优化了什么

        编译期是指把你的源程序交给编译器编译的过程,最终目的是得到可执行的文件。运行期指的是你将可执行文件交给操作系统(输入文件名,回车)执行、直到程序执行结束的期间,执行的目的是为了实现程序的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: