重载和重写的区别
Posted fereli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载和重写的区别相关的知识,希望对你有一定的参考价值。
重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,发生在编译时。
1 /** 2 * 重载 3 * @author fereli 4 */ 5 public class Father { 6 //无参 7 public void hello(){ 8 System.out.println("Hello"); 9 } 10 //一个参数 11 public void hello(String name){ 12 System.out.println("Hello"+name); 13 } 14 //两个参数 15 public void hello(Integer id,String name){ 16 System.out.println("Hello"+name); 17 } 18 //参数排序不同 19 public void hello(String name,Integer id){ 20 System.out.println("Hello"+name); 21 } 22 }
重写:发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类, 访问修饰符(public>protected>default>private) 范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。
1 /** 2 * 重写 3 * @author fereli 4 */ 5 public class Father { 6 public static void main(String[] args) { 7 Son s = new Son(); 8 s.hello(); 9 } 10 protected void hello(){ 11 System.out.println("Hello"); 12 } 13 } 14 class Son extends Father{ 15 @Override 16 public void hello(){ 17 System.out.println("Hello"); 18 } 19 }
以上是关于重载和重写的区别的主要内容,如果未能解决你的问题,请参考以下文章