在Java中overload是重载的意思,而override是重写的意思。
overload体现在类的内部,表现在函数名相同,由于参数列表和参数个数不同,可以通多调用实现重载,体现了类内部的多态。
而override体现的了父类和子类的关系,相同的函数,调用子类的话会覆盖父类的方法,也叫重写。
下面代码实现的是overload:
public class Dog {
Dog()
{
this.bark();
}
void bark()//bark()方法是重载方法
{
System.out.println(\"no barking!\");
this.bark(\"female\", 3.4);
}
void bark(String m,double l)//注意:重载的方法的返回值都是一样的,
{
System.out.println(\"a barking dog!\");
this.bark(5, \"China\");
}
void bark(int a,String n)//**不能以返回值区分重载方法,而只能以“参数类型”和“类名”来**区分
{
System.out.println(\"a howling dog\");
}
public static void main(String[] args)
{
Dog dog = new Dog();
//dog.bark(); [Page]
//dog.bark(\"male\", \"yellow\");
//dog.bark(5, \"China\");
下面代码实现的override
public class Base
{
void test(int i)
{
System.out.print(i);
}
void test(byte b)
{
System.out.print(b);
}
}
public class TestOverriding extends Base
{
void test(int i)//方法的重写
{
i++;
System.out.println(i);
}
public static void main(String[]agrs)
{
Base b=new TestOverriding();
b.test(0)
b.test((byte)0)
}
}