📜  覆盖仅适用于继承的方法吗? (1)

📅  最后修改于: 2023-12-03 15:27:54.606000             🧑  作者: Mango

覆盖仅适用于继承的方法吗?

覆盖是指在Java中,子类中定义与父类中已经存在的同名方法。当对象调用方法时,根据对象的类型自动调用相应的方法。如果子类中的方法与父类中的方法同名且参数列表也相同,那么子类中的方法会覆盖父类中的方法,这就是覆盖。

覆盖的作用是可以在子类中重新定义方法的行为,让它符合子类的需要。但是,覆盖仅适用于继承的方法,也就是说只有子类中的方法与父类中继承而来的同名方法才会被覆盖。

下面是一个简单的例子,展示了如何在子类中覆盖父类中的方法:

public class Animal {
   public void sound() {
      System.out.println("Animal is making a sound");
   }
}

public class Cat extends Animal {
   public void sound() {
      System.out.println("Meow");
   }
}

在这个例子中,Cat类覆盖了父类Animal中的sound()方法,重写后的方法输出字符串Meow。当然,如果在Cat类中没有定义sound()方法,那么就会调用继承而来的父类方法。

总之,覆盖仅适用于继承的方法,也就是子类中继承父类中的方法。在子类中覆盖父类中的方法,可以重新定义子类的方法行为,使其更加符合子类的需要。