黑马程序员技术交流社区

标题: 怎么让子类部分继承父类的属性或方法? [打印本页]

作者: Conning    时间: 2014-5-16 14:14
标题: 怎么让子类部分继承父类的属性或方法?
比如A是父类 B、C是子类
其中A有四个属性 甲乙丙丁
现在BC继承A之后 C里面有甲乙丙丁 但是B只有甲乙丙
提示报错实参形参长度列表不同 找不到合适的构造器
根据老师讲的应该是强转 转了半天转晕了 早起到现在还没吃饭呢

作者: pandapan    时间: 2014-5-16 15:52
同学,请提供一下你的代码,根据你的描述,个人感觉是不可能发生的事情。
作者: 段兆洋    时间: 2014-5-16 17:44
提供代码吧,或许是构造函数问题,复写时参数与父类不对应!
作者: ☆枫の云    时间: 2014-5-16 18:06
没有具体的代码,不能想到你的代码到底哪里出了问题,
但是看到”提示报错实参形参长度列表不同 找不到合适的构造器“这个错误,就很熟悉了,有可能是构造函数出了问题。
  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. }
复制代码

作者: 别小乐    时间: 2014-5-16 18:31
赞一个。赞一个
作者: 彭飞    时间: 2014-5-16 22:59
兄兄,

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

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

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

所以你的想法是错误的,

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

嘿嘿。童鞋,没必要纠集这个了,继续看视频吧。
作者: Conning    时间: 2014-5-16 23:28
彭飞 发表于 2014-5-16 22:59
兄兄,

首先你要搞清楚继承

首先谢谢解答 很详细 秒懂 但是虽然懂了还是不知道怎么操作= =我再看看视频吧
作者: 彭飞    时间: 2014-5-16 23:33
Conning 发表于 2014-5-16 23:28
首先谢谢解答 很详细 秒懂 但是虽然懂了还是不知道怎么操作= =我再看看视频吧 ...

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

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

已经搞出来了 我原来想到向上继承向下继承方面去了 结果只是简单的重新定义一个C独有的变量然后输出打印即可 不过这个变量要用this修饰 其他用super 想破脑袋了我 又是百度又是论坛问人的 不过总算哦了 晚安咯亲
作者: yang1352546    时间: 2014-5-28 11:52
多看看视频吧。加油起
作者: ↘ふ紫铯幽夢    时间: 2014-5-28 11:56
努力。。。加油。。




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