Java重写override

简介: Java重写override

这里有个覆盖的概念,覆盖和重写是一个意思,但是英文在翻译Override时翻译为覆写,覆盖,重载,这就坑爹了,但是我们讲究的是一个共识,重载是同类的同名方法的不同参数,重写是子类重写父类方法要求参数一致。

1 重写(Override)

从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下,

对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。

方法的重写需要符合下面的三个要点:

     1.“==”: 方法名、形参列表相同。

    2.“≤”:返回值类型和声明异常类型,子类小于等于父类。

     3.“≥”: 访问权限,子类大于等于父类。

1.1 方法重写实例:

/**
 * 测试重写(override)/覆盖
 * @author 赵广陆
 *
 */
public class TestOverride {
    public static void main(String[] args) {
      Horse   h   =  new Horse();
      h.run();
    }
}
class  Vehicle {
  public  void  run(){
    System.out.println("跑....");
  }
  public   void stop(){
    System.out.println("停止!");
  }
  public  Person   whoIsPsg(){
    return  new Person();
  }
}
class    Horse   extends  Vehicle {
  public  void  run(){
    System.out.println("四蹄翻飞,嘚嘚的。。。");
  }
  public  Student   whoIsPsg(){//返回值类型小于等于父类的类型
    return  new Student();
  }
}

运行效果:

2 总结:

  1. 发生在父类与子类之间
  2. 方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同
  3. 访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
  4. 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常
目录
相关文章
|
13天前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
19 5
|
1月前
|
Java 编译器 数据安全/隐私保护
Java 重写(Override)与重载(Overload)详解
在 Java 中,重写(Override)和重载(Overload)是两个容易混淆但功能和实现方式明显不同的重要概念。重写是在子类中重新定义父类已有的方法,实现多态;重载是在同一类中定义多个同名但参数不同的方法,提供多种调用方式。重写要求方法签名相同且返回类型一致或为父类子类关系,而重载则关注方法参数的差异。理解两者的区别有助于更好地设计类和方法。
|
2月前
|
Java
【Java基础面试十八】、说一说重写与重载的区别
这篇文章阐述了Java中重写与重载的区别:重载是同一个类中方法名相同但参数列表不同的方法之间的关系,而重写是子类中方法与父类中相同方法名和参数列表的方法之间的关系,且子类的返回值应小于等于父类,访问修饰符应大于等于父类。
【Java基础面试十八】、说一说重写与重载的区别
|
2月前
|
存储 Java
|
2月前
|
Java
【Java基础面试二十二】、为什么要重写hashCode()和equals()?
这篇文章解释了为什么需要重写`hashCode()`和`equals()`方法:因为Object类的`equals()`默认使用`==`比较,这在业务中通常是不够的,我们需要根据对象内容来比较相等性;同时,为了保持`hashCode()`与`equals()`的联动关系,一旦重写了`equals()`,通常也需要重写`hashCode()`。
【Java基础面试二十二】、为什么要重写hashCode()和equals()?
|
2月前
|
Java
【Java基础面试十九】、构造方法能不能重写?
这篇文章指出Java中的构造方法不能被重写,因为构造方法必须与类名相同,而重写要求子类方法与父类方法同名,允许构造方法重写将违背这一规则。
【Java基础面试十九】、构造方法能不能重写?
|
2月前
|
Java
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
34 0
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
|
3月前
|
存储 Java 索引
java 中为什么重写 equals 后需要重写 hashCode
java 中为什么重写 equals 后需要重写 hashCode
64 8
|
2月前
|
Java
描述 Java 中的重载和重写
【8月更文挑战第22天】
17 0
|
2月前
|
存储 Java 索引