重载跟重写的区别

  重载方法是一个类中的多个方法,遵循以下原则:
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类型。父类返回值类型是子类返回值类型的父类。子类重写父类方法的返回值类型必须相同或者小于父类
原文地址:https://www.cnblogs.com/dloading/p/10703680.html