关于Implicit super constructor FF is undefined Must explici

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
public class FF {}class SS extends FFpublic SS (int a,int b){  //do something }}
上面的代码没有问题。


public class FF public FF(int a){}}class SS extends FF{}
对于上面的代码,编译是会出问题的,出什么问题?
Implicit super constructor FF() is undefined for default constructor. Must define an explicit constructor
什么意思?
我们知道,ss继承了ff,那么在构造ss之前,就会先构造ff。
ss没有人为指定的构造函数,因此new SS的时候就用的是默认的构造函数,而子类默认的构造函数调用的也是父类默认的构造函数。
但是父类有了人为指定的构造函数,就覆盖了本身自动生成的默认无参构造函数,换言之,父类没有无参构造函数,那么就出错了。


public class FF public FF(int a){}}class SS extends FFpublic SS(String a){     System.out.println("llll"); }}
上面的代码还是会出错,为什么?
因为不管子类的构造函数是什么样的形式,都会默认调用父类的默认的无参的构造函数。
上面的情况父类依然没有构造函数。
那怎么办?
或者
public class FF {//去掉构造函数}class SS extends FF{public SS(String a){   System.out.println("llll");}}
或者
public class FF public FF(int a){}}class SS extends FFpublic SS(int a){     //指定要调用父类的某个构造函数     super.(a);     System.out.println("llll"); }}



哎 感觉几年的java白学了。
感谢交大的张晨同学。



           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_43678748/article/details/84071594