是否可以在同一类中覆盖一个类的Java方法?

当我们有两个类时,其中一个扩展了另一个类,如果两个类具有相同的方法,包括参数和返回类型(例如sample),则子类中的方法将覆盖超类中的方法。

即由于它是一个继承。如果我们实例化子类,则会在子类对象中创建超类成员的副本,因此这两种方法都可用于子类的对象。

但是,如果调用方法(sample),则将执行子类的采样方法,以覆盖超类的方法。

class Super{

   public static void sample(){

      System.out.println("Method of the superclass");

   }

}

public class OverridingExample extends Super {

   public static void sample(){

      System.out.println("Method of the subclass");

   }  

   public static void main(String args[]){

      Super obj1 = (Super) new OverridingExample();

      OverridingExample obj2 = new OverridingExample();

      obj1.sample();

      obj2.sample();

   }

}

输出结果

Method of the superclass

Method of the subclass

相同类中的重写方法

覆盖时-

  • 两种方法都应该在两个不同的类中,并且这些类必须在继承关系中。

  • 这两个方法必须具有相同的名称,相同的参数和相同的返回类型,否则它们将被视为不同的方法。

  • 子类中的方法不得具有比超类中的方法更高的访问限制。如果尝试这样做,则会引发编译时异常。

  • 如果超类方法引发某些异常,则子类中的方法应引发相同的异常或其子类型(可以不引发任何异常而离开)。

因此,您不能覆盖同一类中存在的两个方法,而只能重载它们。

以上是 是否可以在同一类中覆盖一个类的Java方法? 的全部内容, 来源链接: utcz.com/z/322524.html

回到顶部