override(重写)和overload(重载)是Java多态性的不同表现。重写是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (override)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(overload)。
Overloaded的方法是可以改变返回值的类型。
===========================================================================================
java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。这个annotaton常常在我们试图覆盖父类方法而确又写错了方法名时发挥威力。
比如:如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override,系统可以帮你检查方法的正确性。
@Override
public String toString(){...}
上面这是正确的,一旦写错写成这样:
@Override
public String tostring(){...}
编译器可以检测出这种写法是错误的,这样能保证你的确重写的方法正确。 而如果不加@Override,public String tostring(){...}这样编译器是不会报错的,它只会认为这是你自己新加的一个方法而已。
===========================================================================================
参考原文:http://blog.sina.com.cn/s/blog_5da93c8f0100syaf.html
参考原文:http://www.cnblogs.com/lm002003/archive/2012/06/19/2555490.html