Java 办法重载与办法重写

    添加时间:2013-8-5 点击量:

    办法重载(Overload):


    1.在同一个类中


    2.办法名雷同


    3.参数的个数或类型不合


    4.与办法的返回类型无关


    5.与办法的润饰符无关



    办法重写(Override):


    办法重写必须是子类持续父类,才干进行对父类的办法进行重写。


    1.重写办法与被重写办法必须拥有雷同的办法名


    2.重写办法与被重写办法必须拥有雷同的参数列表


    3.重写办法的返回值类型必须与被重写办法的返回值类型雷同


    4.重写办法不克不及缩小被重写办法的接见权限


    这里重视的是重写办法,必须是子类中能接见到的父类的办法。



    办法重载与办法重写的差别:


    1.重载是同一个类中的同名办法,请求办法名雷同,参数列表不合,与返回值类型无关


    2.重写涉及的是子类和父类之间的同名办法,请求办法名雷同、参数列表雷同、返回值类型雷同



    办法重载示例:




        //默认初始办法,没有参数
    
    public void work(){}

    //重载的办法,含有一个int类型的参数
    public void work(int x){}

    //重载的办法,含有一个String类型的参数
    public void work(String str){}

    //重载的办法,含有两个int类型的参数
    public void work(int x,int y){}

    //错误的重载1,这里会失足,因为重载与返回类型无关
    public int work(){return 0;}

    //错误的重载2,这里会失足,因为重载与接见润饰符无关
    private int work(){}


    View Code

    测试结果的话,直接应用this关键加.重载的办显示出来。



    办法重写示例:




    /
    
    父类代码
    /
    public class Parent {

    //要被重写的办法
    public void work(){
    //省略代码块
    }
    //要被重写的办法
    public void run(String p){
    //省略代码块
    }
    public void sleep(String p){
    //省略代码块
    }
    //此办法无法被重写,因为在子类中接见不到
    private void eat(){
    //省略代码块
    }
    }

    /
    子类代码
    /
    public class Child extends Parent {

    //重写了父类办法
    public void work(){
    //省略代码块
    }
    //重写了父类办法
    public void run(String people){
    //省略代码块
    }
    //此处无法构成办法重写,因为与父类中的sleep办法的参数列表不合
    public void sleep(){

    }
    //这里会提示编译错误,因为与父类的办法返回类型不合
    public String sleep(String p){
    return nihao;
    }
    }


    View Code

    分享到: