栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Java基础学习-重载和重写

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础学习-重载和重写

重写:

重写(override):也称为覆盖。在子类中把父类本身就有的方法再写一遍。【一定发生在继承上】

**重写是子类对父类非静态、非private修饰,非final修饰,非构造方法等的实现过程
进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!**重写的好处在于子类可以根据需要,定义特定
于自己的行为。 也就是说子类能够根据需要实现父类的方法。
【方法重写的规则】

  1. 方法名称相同
  2. 返回值相同【被重写的方法返回值类型可以不同,但是必须是具有父子关系的】
  3. 参数列表相同(数据类型,个数,顺序都相同)【例如:如果父类方法被public修饰,则子类中重写该方
    法就不能声明为 protected】
  4. 子类的访问权限要大于等于父类的权限
  5. private修饰的方法不可以重写
  6. final修饰的方法叫做密封方法,不能被重写
  7. 如果被static修饰,不可重写
  8. 构造方法不能被重写【构造方法只能重载】
  9. 重写的方法, 可以使用 @Override 注解来显式指定, 有了这个注解能帮我们进行一些合法性校验。 例如不小心将方法名字拼写错了 (比如写成 aet), 那么此时编译器就会发现父类中没有 aet 方法, 就会编译报错, 提示无法构成重写
package test;
//重写eat方法
class Animal {
    public String name;
    public int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat() {
        System.out.println(name + " Animal::吃");
    }
}

class Dog extends Animal {
    public boolean silly;
    public String name = "hello";

    public Dog(String name,int age,boolean silly) {
        super(name,age);
        this.silly = silly;
        this.name = name;
    }

    public void eat() {
        System.out.println(name + " Dog::吃");
    }

}

public class Test2 {
    public static void main(String[] args) {
        Dog dog = new Dog("aa", 12, false);
        dog.eat();
    }
}

重载
  1. 方法名称相同
  2. 返回值不做要求
  3. 参数列表不同(数据类型,个数,顺序)
    void func(int x,int y) {
        System.out.println("func1");
    }

    void func(int x,int y,int z) {
        System.out.println("func2");
    }
重写和重载的区别

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1040941.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号