重载与重写

Posted libbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载与重写相关的知识,希望对你有一定的参考价值。

重载与重写的区别
---重载是指在一个类中定义多个方法名相同但参数列表不同的方法,与返回值无关。
---重写是指在子类中定义和父类完全相同的方法,在程序运行时,根据对象的类型不同而调用不同的版本。
重载

public class OverloadDemo {
    public static void main(String[] args) {
        Aoo o = new Aoo();
        o.say();
        o.say("zhangsan");
        o.say(25);
        o.say("zhangsan", 25);
        o.say(25, "zhangsan");
    } 
}
class Aoo{
    void say() {}
    void say(String name) {}
    void say(int age) {}
    void say(String name,int age) {}
    void say(int age,String name) {}
    //int say() {return 1;} //编译错误,重载与返回值类型无关
    //void say(String address) {} //编译错误,重载与参数名称无关
}

重写

public class SuperDemo {
    public static void main(String[] args) {
        Boo o = new Boo();
    }
}

class Coo{
    Coo(int a){
    }
}
class Doo extends Coo{
    Doo(){
        super(5);
    }
}

class Aoo{
    Aoo(){
        System.out.println("超类的无参构造方法");
    }
}
class Boo extends Aoo{
    Boo(){
        //super(); //默认调用超类的无参构造
        System.out.println("派生类的无参构造方法");
    }
}

子类继承父类的方法顺序

public class test {
    public static void main(String[] args) {
        animal d = new dog();
        d.play();
        
    }
    //父静态->子静态->父的非静态方法->父类的构造方法->子类的非静态方法->子类的构造方法->子类的重写普通方法
}

class dog extends animal{
    static {
        System.out.println("这是一个小狗");
    }
    {
        System.out.println("小狗在吃饭");
    }

    public void play() {
        System.out.println("小狗的普通方法");
    }
    public dog(){
        System.out.println("小狗的构造方法");
    }
}
class animal{
    static {
        System.out.println("父类动物");
    }
    public animal() {
        System.out.println("动物的构造方法");
    }
    {
        System.out.println("动物在吃饭");
    }
    
    public void play() {
        System.out.println("动物的普通方法");
    }
}

技术分享图片




以上是关于重载与重写的主要内容,如果未能解决你的问题,请参考以下文章

java 方法重载与重写的归纳

java重构重载重写

重载与重写区别?

重写和重载

方法重写与重载

重写和重载的区别