A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Conning 中级黑马   /  2014-5-16 14:14  /  4225 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如A是父类 B、C是子类
其中A有四个属性 甲乙丙丁
现在BC继承A之后 C里面有甲乙丙丁 但是B只有甲乙丙
提示报错实参形参长度列表不同 找不到合适的构造器
根据老师讲的应该是强转 转了半天转晕了 早起到现在还没吃饭呢

10 个回复

倒序浏览
同学,请提供一下你的代码,根据你的描述,个人感觉是不可能发生的事情。
回复 使用道具 举报
提供代码吧,或许是构造函数问题,复写时参数与父类不对应!
回复 使用道具 举报
没有具体的代码,不能想到你的代码到底哪里出了问题,
但是看到”提示报错实参形参长度列表不同 找不到合适的构造器“这个错误,就很熟悉了,有可能是构造函数出了问题。
  1. class A{
  2.      A(int a,int b){
  3.      }
  4. }

  5. class Demo{
  6.      public static void main(String[] args){
  7.            A a = new A();
  8.           //因为A类型中没有空参数的构造函数,所以会报”实参形参长度列表不同 找不到合适的构造器“的异常。你可以参考一下看看,是不是构造函数出问题了。
  9.      }
  10. }
复制代码
回复 使用道具 举报
赞一个。赞一个
回复 使用道具 举报
兄兄,

首先你要搞清楚继承
继承是从已有的父类派生出新的类

新的类也就是子类吸收其父类数据属性和行为方法,

官方明确指出新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类

所以你的想法是错误的,

换个位置思考,其实 你的问题已经实现了,
b,c都继续了A的功能, b用123功能,c用34功能。  并不会因为都继承了而发生任何冲突或者是异常。
b,c各自可以为自己添加新的属性和功能,

嘿嘿。童鞋,没必要纠集这个了,继续看视频吧。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
彭飞 发表于 2014-5-16 22:59
兄兄,

首先你要搞清楚继承

首先谢谢解答 很详细 秒懂 但是虽然懂了还是不知道怎么操作= =我再看看视频吧
回复 使用道具 举报
彭飞 中级黑马 2014-5-16 23:33:57
8#
Conning 发表于 2014-5-16 23:28
首先谢谢解答 很详细 秒懂 但是虽然懂了还是不知道怎么操作= =我再看看视频吧 ...

嗯,
B extends A   这个时候b就可以直接调用a里面有的方法了。

其实不难,看看视频,按照视频里的代码 多敲一下。 你会感觉,擦,原来是这个样子。
回复 使用道具 举报
彭飞 发表于 2014-5-16 23:33
嗯,
B extends A   这个时候b就可以直接调用a里面有的方法了。

已经搞出来了 我原来想到向上继承向下继承方面去了 结果只是简单的重新定义一个C独有的变量然后输出打印即可 不过这个变量要用this修饰 其他用super 想破脑袋了我 又是百度又是论坛问人的 不过总算哦了 晚安咯亲
回复 使用道具 举报
多看看视频吧。加油起
回复 使用道具 举报
努力。。。加油。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马