是否可以在同一类中覆盖一个类的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 superclassMethod of the subclass
相同类中的重写方法
覆盖时-
两种方法都应该在两个不同的类中,并且这些类必须在继承关系中。
这两个方法必须具有相同的名称,相同的参数和相同的返回类型,否则它们将被视为不同的方法。
子类中的方法不得具有比超类中的方法更高的访问限制。如果尝试这样做,则会引发编译时异常。
如果超类方法引发某些异常,则子类中的方法应引发相同的异常或其子类型(可以不引发任何异常而离开)。
因此,您不能覆盖同一类中存在的两个方法,而只能重载它们。
以上是 是否可以在同一类中覆盖一个类的Java方法? 的全部内容, 来源链接: utcz.com/z/322524.html