【死记硬背】
重载(overload):发生在同一个类中, *** 名必须相同,参数类型不同、个数不同、顺序不同, *** 返回值和访问修饰符可以不同。
重写(Override):发生在父子类中, *** 名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类 *** 访问修饰符为private或者带final,则子类就不能重写该 *** 。
重载和重写是面向对象多态的表现形式, *** 重载实现的是编译时的多态性(也称为前绑定),而 *** 重写实现的是运行时的多态性(也称为后绑定)。
【答案解析】
重载:在实际的开发中,用到的最多的是构造器的重载,如无参构造器和有参构造器,大家想想对不对?构造器 *** 的重载不再写代码说明,下面是一个普通 *** 的重载示例:
public class Father { public static void main(String[] args) { Father father = new Father(); father.sayHello(); father.sayHello("爸爸"); } // *** sayHello public void sayHello(){ System.out.println("Father say Hello!"); } // *** sayHello,参数不一样,重载 public void sayHello(String who){ System.out.println(who + " say Hello!"); } } // 输出 Father say Hello! 爸爸 say Hello!
重写:下面是一个子类重新父类sayHello *** 的示例,方便大家理解。
public class Father { public static void main(String[] args) { Father father = new Father(); father.sayHello(); Father fatherSon = new Son(); fatherSon.sayHello(); Son son = new Son(); son.sayHello(); } public void sayHello(){ System.out.println("Father say Hello!"); } } class Son extends Father{ @Override public void sayHello(){ System.out.println("Son say Hello!"); } } // 输出如下: Father say Hello! Son say Hello! Son say Hello!
【温馨提示】
点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!