写java这么久了,居然到现在才发现这个问题:
java的abstract类的构造函数如果没有默认的构造函数,它的子类也就必须实现一个构造函数(是不是默认的无所谓),下面是一个典型的错误示例:
Base.class
Language: Java
public abstract class Base{ public Base(String t){ System.out.println("here:"+t); } }
Child.class
Language: Java
public class Child extends Base{ }
A.class
Language: Java
public class A{ public static void main(String[] args){ Base b=new Child("t"); } }
结果会抛两个错误出来:
- cannot resolve symbol constructor Child (java.lang.String)
- cannot resolve symbol constructor Base ()
搞不懂是什么原因哦。。。莫名其妙的。谁给个解释的?
注:现在的解决方式就是在子函数里写上构造函数,不过。。。这个构造函数所有的子函数都一样啊。。为啥子不能继承?


