首页天道酬勤什么是方法重载和重写,java接口和抽象类的区别

什么是方法重载和重写,java接口和抽象类的区别

张世龙 05-05 14:45 131次浏览

重载和重写,这是两个新概念,是我们容易混淆的两个概念。 “方法重载”(overloading method )位于类中,方法名称相同,参数不同。 返回的类型是什么? 可以相同也可以不同。 “方法重写”(overiding method )子类希望对其进行某些修改,而不是直接继承父类中的方法,因此必须采用方法重写。 方法的改写也称为方法的覆盖。 方法重载是一种使类能够统一处理不同类型的数据的手段。 Java方法重载是指可以创建多个方法,这些方法在类中具有相同的名称,但具有不同的参数和不同的定义。 在调用方法时,通过传递给它们的不同个数和类型的参数来具体决定使用哪个方法是多态的。 方法重写:在Java中,子类可以继承父类的方法,而无需重写相同的方法。 但是子类可能希望对父类的方法进行一定的修改,而不是直接继承父类的方法,需要采用方法重写。 方法的改写也称为方法的覆盖。 如果子类中的方法与父类中的方法具有相同的方法名称、返回类型和参数表,则新方法将复盖原始方法。 如果需要父类特定的方法,请使用super关键字。 此关键字必须与引用当前类的父类的重写方法的规则:参数列表中的重写方法完全相同。 否则,就不能说是重写,而是重载。 返回的类型必须始终与重写方法的返回类型相同。 否则,就不能说是改写,而是超载。 访问修饰符的限制必须大于已重写方法的“访问修饰符”(publicprotecteddefaultprivate )重写方法。 例如,父类的一个方法的勤奋的小懒虫不应该抛出新的检查异常IOException。 用改写的方法不能抛出Exception。 只能抛出IOException的子类异常。 非检查例外.可以抛出重载规则。 需要不同的参数列表。 如果参数列表不同,则可以有不同的返回类型; 可以具有不同的访问修饰符; 可以抛出不同的例外; 请注意,Java方法的重载要求同名的方法具有不同的参数表。 只是返回类型不同还不足以区分两个重载方法。 重写方法只能存在于具有继承关系的方法中,而重写方法只能重写为父类的非私有方法。 分别举一个例子说明方法的重载。 publicclasstestoverload { publicstaticvoidmain (string [ ] args ) ) { Test test=new Test; test.print (空; } classtest { public void print (string some ) system.out.println (stringversionprint ); }publicvoidprint(objectsome ) system.out.println ) (objectversionprint ); }此程序输出的结果是String version print。 这个主题显然是考察方法的重载,重载允许java类具有多个具有相同方法名称的方法。 编译器可以根据方法的参数类型和数量进行区分。

简述重写和重载,java多态