黑马程序员技术交流社区

标题: 多继承衍生问题! [打印本页]

作者: 贾永长    时间: 2013-7-3 21:01
标题: 多继承衍生问题!
本帖最后由 杜光 于 2013-7-3 21:43 编辑

C中想用A、B类中的方法咋办?(老师说不能多继承)
代码如下:
  1. class A
  2. {
  3.         void show()
  4.         {
  5.                 System.out.println("a");
  6.         }
  7. }
  8. class B
  9. {
  10.         void show()
  11.         {
  12.                 System.out.println("b");
  13.         }
  14. }
  15. class C //C想用到A、B类中的方法咋办?
  16. {}
复制代码

作者: 杨兴庭    时间: 2013-7-3 21:09
在C中创建A和B的对象。。。。。“对象.方法”的形式 调用
作者: 张承富    时间: 2013-7-3 21:13
规范,只能单继承,你还非要多继承
法律规定只能娶一个,你非要娶几个,是可以,但是违法了
楼上的回答已经解决了你的问题
作者: 肥猫    时间: 2013-7-3 21:14
晕AB中的代码可以改么?可以的话让B继承A~~.
作者: 赵然    时间: 2013-7-3 21:14
你给的示例中AB含有的方法是相同的   我感觉是只能建立相应的对象,然后用对象调用了
作者: denghui1010    时间: 2013-7-3 21:18
最简单的方法就是
C a = new A();
a.show();
C b = new B();
b.show();
作者: 王洪波    时间: 2013-7-3 21:27
在我写完代码之前已有人发贴了,我就用代码表达下吧
  1. class A
  2. {
  3.         void show()
  4.         {
  5.                 System.out.println("a");
  6.         }
  7. }

  8. class B
  9. {
  10.         void show()
  11.         {
  12.                 System.out.println("b");
  13.         }
  14. }

  15. public class C
  16. {       
  17.         private A a = new A();
  18.         private B b = new B();
  19.        
  20.         public void show()
  21.         {
  22.                 a.show();
  23.                 b.show();
  24.         }
  25.         public static void main(String[] args)
  26.         {
  27.                 C c = new C();
  28.                 c.show();
  29.                
  30.         }
  31. }
复制代码

作者: 王靖远    时间: 2013-7-3 21:51
可以用反射的方法。就拿A来说。
//在C中用反射获得A的字节码并创建一个实例对象。
A a = A.class.newInstance();
//获得A中的方法。
Method method = A.class.getMethod("show");
//调用方法。
//method.invoke(a);

作者: 贾永长    时间: 2013-7-3 23:47
杨兴庭 发表于 2013-7-3 21:09
在C中创建A和B的对象。。。。。“对象.方法”的形式 调用

嗯,这样啊原来,对象.方法 调用 不错!谢啦:handshake
作者: 贾永长    时间: 2013-7-3 23:49
王洪波 发表于 2013-7-3 21:27
在我写完代码之前已有人发贴了,我就用代码表达下吧

恩恩,代码写的好详细!赶紧保存下来,thank油了:handshake
作者: 贾永长    时间: 2013-7-3 23:50
王靖远 发表于 2013-7-3 21:51
可以用反射的方法。就拿A来说。
//在C中用反射获得A的字节码并创建一个实例对象。
A a = A.class.newInstan ...

这种方法还不知道嘞!高手啊!赶紧保存下来!thank油了!:handshake:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2