在java中私有方法能被重载吗_java - 在Java中重载私有方法 - SO中文参考 - www.soinside.com...

让我们看看JLS的重载方法是什么:

如果一个类的两个方法(无论是在同一个类中声明,还是由一个类继承,或者一个是声明的,一个是继承的)都具有相同的名称,但签名不是覆盖等效的,那么方法名称就是超载。

覆盖等价是什么意思?

让我们看看JLS说的是什么:

如果m1是m2的子签名或m2是m1的子签名,则两个方法签名m1和m2是覆盖等价的。

方法m1的签名是方法m2的签名的子签名,如果:

m2与m1具有相同的签名,或者m1的签名与m2签名的擦除(§4.6)相同。

现在,让我们看看上面的例子。

Sub中的2个私有方法被重载。

超级的method()不是Sub继承的,因为它是私有的。因此,在Super的方法()和Sub的方法(int x)之间没有过载。

让我们看一个在继承链中的类中重载的简单示例。在Eagle类中,fly()被重载。

public class Bird {

public void fly() {

System.out.println("Bird is flying");

}

public void eat(int food) {

System.out.println("Bird is eating "+food+" units of food");

}

}

public class Eagle extends Bird {

public int fly(int height) {

System.out.println("Bird is flying at "+height+" meters");

return height;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值