一:重写(override)
重写是一种覆盖操作,如子类中重写父类中的某些方法,同一个对象或类只能调用一个该操作,其他操作对该对象或类是屏蔽的。
1. 子类继承父类并重写了父类的成员方法:
class Pub{
void fun()
{
System.out.println("I am Pubfun");
}
}
public class Sub extends Pub{
void fun()
{
System.out.println("I am Subfun");
}
public static void main(String[] args)
{
Pub test1=new Pub();
Pub test2=new Sub();
test1.fun();
test2.fun();
}
}
运行结果为:
I am Pubfun
I am Subfun
2. 子类继承父类并重写父类中的静态方法:
class Pub{
static void fun()
{
System.out.println("I am Pubfun");
}
}
public class Sub extends Pub{
static void fun()
{
System.out.println("I am Subfun");
}
public static void main(String[] args)
{
Pub.fun();
Sub.fun();
}
}
运行结果:
I am Pubfun
I am Subfun
二:重载(overload)
重载相当于重新定义一个名字相同的操作,运行时根据参数列表的不同进行区分,同一个对象或类可以通过不同的参数调用不同的操作。
public class Sub{
void fun(int a)
{
System.out.println(a);
}
int fun(String str)
{
System.out.println(str);
return 0;
}
public static void main(String[] args)
{
new Sub().fun(20);
new Sub().fun("xuerui");
}
}
运行结果:
20
xuerui