1.什么叫方法的重载?(overload) 在同一个类中,定义若干个相同方法名,但有不同形参列表的方法,这就是方法的重载 注意: (1)不同形参列表包括: 形参个数不同; 形参类型不同; 形参类型顺序不同 (2) 方法的重载与返回值类型无关; 与形参变量名无关; 2.什么叫方法的重写?)(overwritte) 子类继承父类后,可以对父类中同名同参的方法,进行覆盖操作; 作用 : 重写以后,当创建子类对象后,通过子类对象调用子父类中同名同参的方法时,实际上执行的是子类重写父类的方法. 3.从编译和运行的角度看: 重载,是指允许存在多个同名方法,而这些方法的参数不同。编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。Java的重载是可以包括父类和子类的,即子类可以重载父类的同名不同参数的方法。 所以:对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为**“早绑定”或“静态绑定”;** 而对于多态,只有等到方法调用的那一刻,解释运行器才会确定所要调用的具体方法,这称为**“晚绑定”或“动态绑定”**。 引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚绑定,它就不是多态。”
|