重载和重写的区别

重载

重载发生在本类,方法名必须相同,参数列表不同,与返回值无关,只和方法名,参数列表,参数的类型有关

  1. 方法名必须相同

  2. 方法的参数列表一定不一样

  3. 访问修饰符和返回值类型可以相同也可以不相同

简单来说,重载就是对于不同的情况写不同的方法。比如,同一个类中,写不同参数的构造函数来初始化不同的参数

重写

重写发生在父类和子类之间,比如所有类都继承自 Object 类,Object 类本身就有 equals、hashcode 等方法,在任意子类中定义了重名和同样的参数列表就构成了方法重写

  1. 方法名必须相同,返回值类型必须相同

  2. 参数列表必须相同

  3. 访问权限不能比父类中重写的方法权限更低。例如:如果父类中的一个方法被声明为 public 那么重写的方法就不能被声明为 protected

  4. 父类的私有方法和声明为 final 的方法不能被重写

  5. 构造方法呗不能被重写

-----------本文结束感谢您的阅读-----------
0%