Java 中的接口命名冲突
原文:https://www . geesforgeks . org/interface-naming-conflicts-in-Java/
Java 中的接口由抽象方法(不包含主体)和变量(公共静态 final)组成。接口方法的实现在实现该接口的类中定义。它帮助 Java 实现抽象。
当一个类实现两个具有同名方法和变量的接口时,就会发生命名冲突。
接口命名冲突
由于接口由变量和方法组成,因此两种类型的命名冲突可能会发生。
- Method naming conflict
- Variable naming conflict
1.方法命名冲突
这种方法命名冲突可能在各种情况下发生。
Case-1: 当我们有两个方法名相同、签名相同、返回类型相同的接口时,实现类可以实现其中的任意一个,不能说实现了其中的哪一个。
代码
Java
public interface Interface1 {
// create a method
public void show();
}
T15】JavaT1T21T23】JavaT2T28】
输出
Geeks For Geeks
说明:在下面的代码中,我们无法确认哪一个显示 2 个接口的方法被执行。不会引发错误。
Case-2: 当两个接口由名称相同但签名不同的方法组成时,那么在实现类中,我们需要实现两种方法,并且根据我们调用的方法的种类来执行方法。
代码
Java
public interface Interface1 {
// create a method
public void show();
}
T15】JavaT1T21T23】JavaT2T28】
输出
Geeks For Geeks
GFG
说明:这种情况下可以根据签名区分这些方法的执行,这种情况下忽略返回类型。
Case-3: 当两个接口包含一个名称相同、签名相同但返回类型不同的方法时,这种情况下两个接口不能在同一个类中实现。需要创建单独的类来实现该类型的每个接口。
代码
Java
public interface Interface1 {
// create a method
public void show();
}
Java
public interface Interface2 {
// create method with same name & signature but
// different return type
public String show();
}
版权属于:月萌API www.moonapi.com,转载请注明出处