(Java面试基础)重载和重写的区别

  • 重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。
public class Demo{

       void speak(){
            System.out.println("重载方法");
     	}
        void speak(int a){
             System.out.println(a);
       }
   }

注意:不能以返回类型来区分重载方法,只能以“参数类型”和“类名”来区分。

  • 重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。
public class Father{

      public void speak(){
           System.out.println("Father");
      }
 }

   public class Son extend Father{
   
        public void speak(){
              System.out.println("Son");
        }
 }

你可能感兴趣的:(面试题,Java)