现在有 A类和B接口,同时有a()方法, 类C继承A实现B..
问:有什么方法使这两个a()方法不冲突?? 即能覆盖类A的方法,又能实现接口B的方法??
类A:{a()}
接口B : {a()}
类C extends A implements B
问:有什么方法使这两个a()方法不冲突?? 即能覆盖类A的方法,又能实现接口B的方法??
类A:{a()}
接口B : {a()}
类C extends A implements B
class A
{
public void a()
{
System.out.println("A: a()");
}
}interface B
{
void a();
}class C extends A implements B
{
public void a()
{
super.a();
System.out.println("B: a()");
}
}
@Override
void a() {
System.out.println("A:a()");
}
B getB() {
return new B() {
void a() {
System.out.println("B: a()");
}
};
}
}
对于某个特定的Sequence只能有一个Selector。然而使用内部类就很容易就能拥有另一个方法
reverseSelector(),用它来生成一个反方向遍历序列的Selector。只有内部类才有这种灵活性。--------------------摘自《Thinking in java(第四版)》
楼上说使用内部类,感觉与这种形式不符了。
别的就别想了,java实现不了。
不继承A类,从何谈起覆盖A类的方法??不Implements接口B,如何谈气实现B接口的方法??用内部类也许既可以达到A类和B接口的功能。但是那可以叫做覆盖或者实现接口吗?
learning!
有道理 看如何理解题意类A:{a()}
接口B : {a()}
类C extends A implements B 这是楼主给出的C extends A implements B 22楼的就别讨论目的了...
public class A extends B
{
void a1(){}
private class X interface C{
void a(){
a1();
}
}
public C getCallBack()
{
return new X();
}
}
{
void a1(){}
private class X interface B{
void a(){
a1();
}
}
public B getCallBack()
{
return new X();
}
}
我觉得楼主的意思是实现其目的 使父类不被覆盖,同时实现接口的 !
上面的种种内部类有哪个实现同名方法实现和继承?不都是主类override A的a(),内部类实现B的a()?!!那么下面的做法(稍微修改自四楼),不也能做到?class A
{
public void a()
{
System.out.println("A: a()");
}
}interface B
{
void a();
}class C extends A implements B
{
public void a()
{
System.out.println("B: a()");
}//用ab()来调父类方法
public void ab()
{
super.a();
}}
所以说,内部类也解决不了楼主的真实命题。
孩子们,在Java世界中,这是无解的!
类A:{a()}
接口B : {a()}
类C extends A implements B
首先我想问下LZ,这是你自己定义的类C吗?如果不是,貌似没有办法。
类C不是我定义的!
我想面试官可能是考我内部类的知识吧!
不过当时他确实是这样说的,我记得很清楚,当时想了很久都想不到,也没想到内部类
:: 一个类C继承A类 实现B类,有什么办法可以使两个方法不冲突! 注意:C类要重写A类的方法
写的话,java中应该没有办法吧。。
内部类还是能解决这个问题的。。如果考虑实现重写的功能化。。
答:要想不冲突,两个a()的返回值类型必须一样. 直接在C类中覆写a()就可以了.