能否在同一个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
在同一个类中重写方法
在重写时:
两种方法都必须位于两个不同的类中,并且这些类必须存在继承关系。
两种方法必须具有相同的名称、相同的参数和相同的返回类型,否则它们将被视为不同的方法。
子类中的方法的访问限制不能高于超类中的方法。如果尝试这样做,则会引发编译时异常。
如果超类方法抛出某些异常,则子类中的方法应抛出相同的异常或其子类型(可以不抛出任何异常)。
因此,不能重写存在于同一个类中的两个方法,只能重载它们。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP