java 类 覆盖_是否可以在同一类中覆盖一个类的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

相同类中的重写方法

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值