首先明确 Java 为了解决 “致命方块“问题不允许多继承,就是因为若多个父类中出现相同方法,在子类中调用 burn( ) 无法得知调用的是那个父类的 burn( ) 的二义性问题。
Java 虽然不支持多继承,但是它支持多接口实现的问题,若是在开发中,实现多个接口且接口出现多个重复的抽象方法时,此抽象方法该如何实现 ?
首先明确一点,当类实现其中的一个就可以了,相当于实现了两个 。
如何强行实现出两个接口各自的抽象方法 ?
若有需求需要实现出接口两个不同的抽象方法该如何做 ? 答:** 内部类** ,但无法让两个函数名保持一致
//1.接口A的run
public interface interA { public abstract void run();}
//2.接口B的run
public interface interB { public abstract void run();}
//3.模块实现接口A,B不同的方法
public class Demo implements interA{
//4.通过内部类的方式实现
private class IterBImpl implements interB{
@Override
public void run() {
System.out.println("This run from InterB....");
}
}
@Override
public void run() {
System.out.println("This run from InterA....");
}
//5.通过参数区分调用不同接口的方法
public void run(int i){
IterBImpl it=new IterBImpl();
it.run();
}
}
public class TestClass {
public static void main(String[] args) {
Demo1 demo1=new Demo1() ;
demo1.run(); //调用接口A
demo1.run(1); //调用接口B
}
}