【Java 方法重写】@Override 注解,一般用法,重写的具体要求

简介: 【Java 方法重写】@Override 注解,一般用法,重写的具体要求


何が Java の 重写?🥒

  1. Java中的方法重写(Method Overriding)是指在子类中定义一个与父类中同名、同参数列表、同返回值类型的方法,从而覆盖父类中的方法实现。当子类对象调用该方法时,会优先调用子类中的方法实现,而不是父类中的方法实现。
  2. 需要注意的是,方法重写只能在继承关系中发生,即子类重写父类的方法。如果两个类之间没有继承关系,就不能进行方法重写
  3. 方法重写的目的是为了实现多态性,让不同的子类对象调用同一个方法时,可以根据实际类型来执行不同的方法实现。

@Override 注解の作用 🍊

  1. @override注解是告诉编译器,下面的方法是重写父类的方法
  2. 如果不写@override注解去直接重写方法,编译器是不会判断你是不是正确重写了父类中的方法的。
  3. 如重写方法时参数与父类不同,程序是不会提示报错的。这会留下一个潜在的bug。
  4. 当你写了@override注解时,程序会判断你是否正确的重写了父类的对应方法。
  5. 而且加上此注解后,程序会自动屏蔽父类的方法。

方法重写的规则 🍋

  1. 方法名、参数列表和返回值类型必须与父类中被重写的方法相同。
  2. 访问修饰符不能比父类中被重写的方法的访问修饰符更严格。例如,如果父类中被重写的方法是public,那么子类中重写的方法也必须是public或者protected,不能是private。
  3. 子类中重写的方法不能抛出比父类中被重写的方法更多的异常,或者抛出未在父类中声明的异常。
  4. 子类中重写的方法不能使用比父类中被重写的方法更严格的访问修饰符。例如,如果父类中被重写的方法是protected,那么子类中重写的方法不能是private。

什么情况下会进行方法重写?🍓

方法重写通常发生在继承关系中,当子类需要对父类的某个方法进行特定的实现时,就可以通过方法重写来实现。

Java 重写的小案例 🍄

public class Person {
    private String name;
    private int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public void introduce() {
        System.out.println("我叫" + name + ",今年" + age + "岁。");
    }
}
public class Student extends Person {
    private String school;
    public Student(String name, int age, String school) {
        super(name, age);
        this.school = school;
    }
    @Override
    public void introduce() {
        System.out.println("我叫" + getName() + ",今年" + getAge() + "岁,就读于" + school + "。");
    }
    public String getSchool() {
        return school;
    }
    public void setSchool(String school) {
        this.school = school;
    }
}

在这个案例中,子类Student重写了父类Person的introduce()方法,并且添加了一个新的属性school。在子类中,我们可以通过super关键字来调用父类的构造方法和方法,也可以通过this关键字来调用子类自己的属性和方法。

目录
打赏
0
0
0
0
8
分享
相关文章
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
163 7
注解的艺术:Java编程的高级定制
注解是Java编程中的高级特性,通过内置注解、自定义注解及注解处理器,可以实现代码的高度定制和扩展。通过理解和掌握注解的使用方法,开发者可以提高代码的可读性、可维护性和开发效率。在实际应用中,注解广泛用于框架开发、代码生成和配置管理等方面,展示了其强大的功能和灵活性。
119 25
Java方法重写(Override)与重载(Overload)的详细对比
在Java编程中,多态性是面向对象编程的核心概念之一。Java通过两种重要的机制来实现多态:方法重写(Override)和方法重载(Overload)。虽然这两个概念都与方法的不同实现有关,但它们在本质上有很大的区别。本文将详细对比这两种机制,帮助开发者更好地理解和应用它们。
368 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
6717 4
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
9月前
|
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
186 43
Java学习十六—掌握注解:让编程更简单
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
266 5
深入理解Java中的FutureTask:用法和原理
【10月更文挑战第28天】`FutureTask` 是 Java 中 `java.util.concurrent` 包下的一个类,实现了 `RunnableFuture` 接口,支持异步计算和结果获取。它可以作为 `Runnable` 被线程执行,同时通过 `Future` 接口获取计算结果。`FutureTask` 可以基于 `Callable` 或 `Runnable` 创建,常用于多线程环境中执行耗时任务,避免阻塞主线程。任务结果可通过 `get` 方法获取,支持阻塞和非阻塞方式。内部使用 AQS 实现同步机制,确保线程安全。
860 3
|
8月前
|
Java进阶之标准注解
Java进阶之标准注解
89 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问