类B实现接口A,类C继承类B。调用接口A执行了类B,为啥不是类C?

如题,我想调用A时执行类C的。类C继承类B后无论是否实现类A都是不执行的。

B 是父类 C是子类 同事B是A的实现类,调用接口A是去调用A的实现类,父类和子类之间的继承关系是,调用子类,子类去调用继承父类的具体方法。你现在调用的其实是父类,父类不会去用到子类的方法,所以就不是类C,lz是否明白?
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-08
是否用了什么配置文件和框架,如spring的控制反转等
如果没有的话把你的关键代码贴上来,如你的A是怎样实例化的,是怎样调用do方法的,这样才好解答
第2个回答  2013-01-08
贴出来代码 描述的太模糊了追问

interface A{}

class B implements A {do(){//打印B};}
class C extends B {do(){//打印C};}
然后在另外一个地方执行了A.do()
大概这么个意思

追答

调用接口A执行了类B 你怎么调用的
A a = new B();
a.do();
是不是

类B实现接口A,类C继承类B。调用接口A执行了类B,为啥不是类C?
B 是父类 C是子类 同事B是A的实现类,调用接口A是去调用A的实现类,父类和子类之间的继承关系是,调用子类,子类去调用继承父类的具体方法。你现在调用的其实是父类,父类不会去用到子类的方法,所以就不是类C,lz是否明白?

java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多...
两种方式都实例化了C类的对象,但是引用不同,第一种只能调用A类里定义了方法,第二种A\/B\/C三个类里面定义的方法都可以调用。将第一种new出来的对象a进行强转为C类应用后即可调用A\/B\/C类的所有方法,因为他自己本来就是C类对象。多态是指,如果A类定义了方法fun()而后B类或C类重写了方法fun()...

java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多...
当然有区别,如果C中某方法是新的,并非继承自某个A或B中的方法,那你对A a=new C();中的a无法调用此方法,编译就通不过,而对C a=new C();中的a就可以调用此方法。如果此方法继承自A或B,那么即使在C中重写了此方法,这两个句子产生出来的a调用此方法产生的结果都是一样的,这就是多态...

java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多...
因为 C 继承了 B,B 继承了 A,所以 C 是一个 A 类型的对象,所以可以将 C 类型的实例对象赋值给 A 类型的引用变量 a。此时,a 可以访问 A 类中的成员变量和方法,但是无法访问 C 类中特有的成员变量和方法。

A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承...
对于一个类实现多个接口的情况,因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类的方法(不存在歧义),因此不存在 多继承的第二个缺点;而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引用静态...

类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那 ...
类A和类B没有公共的基类,排除B选项 C、D选项太绝对。只剩下A选项了。

java中定义一个类可以同时继承两个类
java中一个类不能直接继承两个类。比如说这样:class A extends B,C 不能这样写,因为java不支持多继承,但是可以像下面这样实现继承多个类:class A extends B class C extends A 这样C就同时继承了B和A两个类。

Java中一个类最多可以继承?
java中定义一个类可以同时继承两个类吗?1、java中一个类不能直接继承两个类。比如说这样:classAextendsB,C不能这样写,因为java不支持多继承,但是可以像下面这样实现继承多个类:classAextendsBclassCextendsA这样C就同时继承了B和A两个类。2、不能。\\x0d\\x0a一个类不能直接继承多个类,java...

java一个接口的多个实现类可否选择执行两个?
C c = new A();a.method();c=new B();b.method();酱紫就可以了 但是不会这么写的,接口一般的作用就是为了定义规范 比如你写个方法public void method1(C c){ c.method();\/\/酱紫调用,根据传入的参数的不同就会执行具体实现类的方法了,你传入A,就是A.method,传入B就是B.method } ...

在C#中类A:类B是什么意思
表示A类继承类B 也是就说了B是基类,A类是派生类(或叫使子类)。B类是A类的父类。在B类声明的属性,方法等,在A类中都得到继承。但A类中,也可以有自己的方法,属性等 也可以通俗的这样理解,A类是B类的一种特殊情况,A类是“等边三角形”B类是“三角形”。

相似回答
大家正在搜