【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关键字来调用子类自己的属性和方法。

相关文章
|
10天前
|
Java
如何在Java中实现自定义注解和处理器
如何在Java中实现自定义注解和处理器
|
10天前
|
Java
java中return,break以及continue的用法
java中return,break以及continue的用法
22 10
|
10天前
|
Java 编译器 API
Java注解
Java注解
18 10
|
7天前
|
Java Spring
使用Java实现自定义注解的方法与技巧
使用Java实现自定义注解的方法与技巧
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
|
12天前
|
Java 编译器 数据库连接
Java中的注解机制及其应用
Java中的注解机制及其应用
|
12天前
|
Java Maven 开发者
Java中的注解处理器详解
Java中的注解处理器详解
|
4天前
|
Java 编译器 数据库连接
Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法
Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法
8 0
|
6天前
|
搜索推荐 Java 编译器
【Java探索之旅】多态:重写、动静态绑定
【Java探索之旅】多态:重写、动静态绑定
9 0
|
6天前
|
Java API
Java注解与反射机制
Java注解与反射概述: - 注解用于元数据,包括元注解`@Target`, `@Retention`, `@Documented`, `@Inherited`。 - 自定义注解用于自定义行为标记,参考[链接]例化后通过`getClass()`获取类信息。 - 主要API涉及类的多种获取方式,如`对象.getClass()`, `类名.class`, `Class.forName()`和内置类型`TYPE`。 - 应用场景包括动态创建对象,获取泛型和注解信息以及分析运行时结构。