其次 class C 里的f1() 方法是public的,和class X 的f1() 方法,返回值相同,参数列表也相同, 这只能说是一种巧合,根据多态,class X重写了class C的f1()方法。
最后如果 class C 里的f1() 方法是private的,那么class C 里的f1()方法就不会被 class X 所继承,因此就没有重载,只是实现。
------解决方案-------------------- 你可以把接口当成光杆抽象类理解
你这层关系,应该这么来说
X继承了C,并重写了int fi()方法
而C中的int f1()方法继承自接口I1
也就是说 X x=new X(); C c=new X(); I1 i=new X(); 都是正确的,都是父类的引用指向子类的对象
这里的 x.f1() c.f1() i.f1() 调用的方法都是 X实例中的f1();
do you understand?
------解决方案-------------------- 接口的方法本身就必须要实现,【继承C的还是实现I1】两者又不矛盾,只是刚好巧合在一起了,你纠结个啥啊。 就好像一个人上了大学,叫他大学生可以吧。然后他姓大,名叫大学生,难道不行吗? 楼主,当心被人耻笑智商啊,呵呵。
------解决方案-------------------- 是实现,继承被覆盖了
------解决方案--------------------