指穷于为薪,火传也,不知其尽也。—《养生主》

Daily English:He is a wise man who speaks little.

java abstract类构造函数继承

写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 ()

搞不懂是什么原因哦。。。莫名其妙的。谁给个解释的?

注:现在的解决方式就是在子函数里写上构造函数,不过。。。这个构造函数所有的子函数都一样啊。。为啥子不能继承?

分享家:Addthis中国

Leave a comment for: "java abstract类构造函数继承"

*

Tag Cloud