Java重写Override和重载Overload

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wu_wxc/article/details/51457528

转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/51457528
本文出自【吴孝城的CSDN博客】

重写是子类对父类中允许访问的的方法的重新编写
重载是同一类中方法名相同,但返回值类型或参数有所不同的方法的重新加载

Override(重写)

package cn.wuxiaocheng;

class Animal {
    public void eat() {
        System.out.println("动物都需要吃东西");
    }
}

class Dog extends Animal {
    // 重写父类方法
    @Override
    public void eat() {
        System.out.println("狗喜欢啃骨头");
    }
}

public class Test {

    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();
    }
}

结果如图
这里写图片描述

@Override表明这个方法是重写其父类方法,没有它不会报错,但是没有它时,下面重写的方法名写错时系统不会报修。

重写的注意事项

1、声明为final的方法不能被重写
2、声明为static的方法可以被再次声明,但不能被重写
3、子类和父类在同一包中时,子类可以重写父类中除了声明为private或final的其他所有方法
4、子类和父类不在同一包中时,子类只能重写父类中声明为public或protected的非fnial方法
5、构造方法不能被重写

Overload(重载)

package cn.wuxiaocheng;

class MyOverloading {
    // 没有参数
    public void people() {
        System.out.println("没有参数");
    }

    // 参数为String
    public void people(String name) {
        System.out.println(name);
    }

    // 参数为int,返回int类型的值
    public int people(int age) {
        System.out.println(age);
        return age;
    }

    // 参数为String, int
    public void people(String name, int age) {
        System.out.println("name:" + name + "," + "age:" + age);
    }

    // 参数为int, String
    public void people(int age, String name) {
        System.out.println("age:" + age + "name:" + name);
    }
}

public class Test {

    public static void main(String[] args) {
        MyOverloading myOverloading = new MyOverloading();
        myOverloading.people();
        myOverloading.people("名字");
        myOverloading.people(20);
        myOverloading.people("名字", 20);
        myOverloading.people(20, "名字");
    }
}

结果如图
这里写图片描述

重载和重写的区别

区别点 重载方法 重写方法
方法名 相同 相同
返回值类型 可以修改 相同
参数 参数不同或参数顺序不同 相同
访问修饰符权限 没有要求 被重写的方法权限不得比父类严格
范围 同一类中 在继承中

访问权限比较

修饰符 当前类 同一包 子孙类 全可见
private
default
protected
public

其中什么都没写的就是default,有的也叫friendly

猜你喜欢

转载自blog.csdn.net/wu_wxc/article/details/51457528