Java overload v.s. override
2014-05-02 12:15
169 查看
overload:
1. 在同一个类中
2. 方法名一样,参数个数和参数类型不同
3. 返回值可以相同,可以不同。这不是判断 overload 的标准
Overriding:
1. 父类与子类之间
2. 子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表 (注意在overload中, return value 不必相同)
3. 访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
因此,通过 override 可以扩大方法的访问权限
test() 在 Base 中是private, 通过 override 后可以 public 访问。而反过来是错误的。
1. 在同一个类中
2. 方法名一样,参数个数和参数类型不同
// all corret overloads public void bark() { System.out.println("No barking"); } public String bark(String with, int i) { System.out.println("No barking"); return "bark"; } public void bark(int i, String with) { System.out.println("No barking"); }
3. 返回值可以相同,可以不同。这不是判断 overload 的标准
// wrong corret overload public void bark() { System.out.println("No barking"); } public String bark() { System.out.println("No barking"); return "bark"; }
Overriding:
1. 父类与子类之间
2. 子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表 (注意在overload中, return value 不必相同)
3. 访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
因此,通过 override 可以扩大方法的访问权限
public class Base { private void test(int i) { System.out.print(i); } } public class ChildBase extends Base { public void test(int i) { i++; System.out.println(i); } }
test() 在 Base 中是private, 通过 override 后可以 public 访问。而反过来是错误的。
相关文章推荐
- Java基础之abstract class与interface,Override与Overload
- Java中Overload和Override的区别
- java的overload与override
- JAVA重载(overload)和覆盖(override)中你所不知道的陷阱
- Java多态性Overload和Override的区别
- Java 重写(Override)与重载(Overload)
- Java中的继承extends(this,super;类的加载和初始化问题;override,overload)
- JAVA知识回顾-4(Exception、Error、OOM、Java面向对象特征含义、Override和Overload含义区别)
- java基础---方法的重载(overload)和覆盖(重写)(override)
- Java 重写(Override)与重载(Overload)
- Java中Overload和Override的区别
- 0810-Java 重写(Override)与重载(Overload)
- java中方法重载(overload)和方法重写(override)区分
- Java 编程下 Overload 和 Override 的区别
- Java:Override 和 Overload 解惑
- java中overload和override区别
- java总的重载(overload)、重写或覆盖(override)和隐藏分析;
- Java中的overload VS override
- java中的几个术语(覆写override,隐藏hiding,重载overload,遮蔽shadowing,遮盖obscuring)
- java 中的override & overload 比较