• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

这样为什么不行十个字

112005wlrjlaeziwrr33sp.jpg

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与5


  • java中每个类必须有一个构造函数,如果没有显示的声明构造函数,那么编译器会自动加一个无参的构造函数。当显示定义了带参数的构造函数之后,而没有显示的定义无参构造函数,那么这个类就没有无参构造函数了。
  • 子类继承父类,必须在子类的构造函数中调用父类的构造函数,如果子类的构造函数中,没有显示的调用父类的构造函数,那么会自动调用父类的无参数构造函数,如果父类没有无参数构造函数,那么子类中必须显示的调用父类的构造函数(使用super关键字即可),而且必须是在构造方法的第一个语句 中进行调用。
  PS:现在说说你的代码的问题,父类Animal没有显示的定义无参构造函数,所以只有有参构造函数,子类必须调用父类的构造方法(即父类的有参构造方法),用来初始化父类。(子类在执行过程中,先执行父类,所以必须初始化父类的构造器,避免出现错误)。
//父类AnimalpublicclassAnimal{        privateStringcolor;        privateStringsize;                //只定义了有参构造函数,未显示定义无参构造函数        publicAnimal(Stringcolor,Stringsize){                this.color=color;                this.size=size;        }}//子类Dog继承父类AnimalclassDogextendsAnimal(){//子类继承父类,需要调用父类的构造方法,使用super关键字即可publicDog(Stringcolor,Stringsize,Stringtest){                super(color,size);//必须放在第一个构造函数第一行        }}下面是你想达到的效果:
publicclassAnimal{        privateStringcolor;        privateStringsize;                //显示定义无参构造函数        publicAnimal(){}                publicAnimal(Stringcolor,Stringsize){                this.color=color;                this.size=size;        }}classCatextendsAnimal{                publicCat(Stringcolor,Stringsize,Stringtest){                super();//其实也是调用了父类的无参构造方法,编译器默认调用而已,也可以不写该super()        }}

使用道具 举报

典型的多态问题 编译看父类运行看子类 构造方法也一样

使用道具 举报

子类重写父类的方法,参数类型和个数要一样。

使用道具 举报

112006g82ajcjjolfjrroe.jpg
112007w5n0f4llhh15hs1h.jpg




父类中你没有定义boolean song,所以报错...也是不满足父类构造器中没有这个属性。。。。

使用道具 举报

子类不满意父类的构造器,想重新写一个构造器,但是必须要调用父类的构造器,为什么必须要调用父类的构造器,是不是你后面说的要先创建父类对象,调用父类的构造器,然后再创建子类对象,调用子类的构造器。那它干嘛不去父类里调,要在子类里再写一遍,还有既然是先调用父类构造器,再调用子类构造器,为什么我图片中打印出来只有子类(我还以为是先打印父类再打印子类,不解)
112007g2rllqhgvggdgu72.jpg

使用道具 举报

发新帖

发布任务需求已有1031166位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!