重载方法是一个类中的多个方法,遵循以下原则:
1、方法的参数列表不同,包括参数的类型或个数;
2、方法的返回值类型、修饰符可以相同也可以不同;
3、方法的返回值类型不能作为区分重载的标志。
package SE;
public class Chongzai {
public void disPlay(String name)
{
System.out.println(name+" 重载");
}
public void disPlay(int number)
{
System.out.println(number+" 重载");
}
protected void disPlay(String name,String place)
{
System.out.println(name+" 重载 "+place+" 重载");
}
public static void main(String[] args)
{
Chongzai chongzai=new Chongzai();
chongzai.disPlay("xjf");
chongzai.disPlay(19980309);
chongzai.disPlay("xjf","shengyang");
}
}
重载disPlay()方法, disPlay(String name)方法跟disPlay(int number)参数类型不同、访问权限相同,
disPlay(String name)方法和disPlay(String name,String place)方法参数个数不同、访问权限不同,
方法的重写是子类和父类之间的,遵循以下原则:
1、子类中重写的方法必须和父类中重写的方法具有相同的方法名称、参数列表、和返回值类型
2、子类重写的方法权限不能缩小
3、重写方法不能抛出新的异常
class Dauther extends Mother
{
public void disPlay(String name)
{
System.out.println(name+" 子类重写");
}
public Dauther ddd()
{
return null;
}
}
class Mother
{
protected void disPlay(String name)
{
System.out.println(name+" 父类重写");
}
public Mother ddd()
{
return null;
}
}
父类disPlay(String name)方法的权限protect小于子类disPlay(String name)方法的public权限。
父类的ddd()方法返回值类型为Mother,子类ddd()方法返回值类型为 Dauther类型。父类返回值类型是子类返回值类型的父类。子类重写父类方法的返回值类型必须相同或者小于父类