真理的旅行,是不用入境证的。 —— 约里奥·居里

日记列表


  • 天气
  • 2006年06月25日 09:06 星期日

java abstract类构造函数继承

写java这么久了,居然到现在才发现这个问题:

java的abstract类的构造函数如果没有默认的构造函数,它的子类也就必须实现一个构造函数(是不是默认的无所谓),下面是一个典型的错误示例:

Base.class

Language:java, parsed in: 0.008 seconds, using GeSHi 1.0.7.12
  1. public abstract class Base{
  2.   public Base(String t){
  3.     System.out.println("here:"+t);
  4.   }
  5. }
  6.  

Child.class

Language:java, parsed in: 0.004 seconds, using GeSHi 1.0.7.12
  1. public class Child extends Base{
  2. }
  3.  

A.class

Language:java, parsed in: 0.006 seconds, using GeSHi 1.0.7.12
  1. public class A{
  2.   public static void main(String[] args){
  3.     Base b=new Child("t");
  4.   }
  5. }
  6.  

结果会抛两个错误出来:

  • cannot resolve symbol constructor Child (java.lang.String)
  • cannot resolve symbol constructor Base ()

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

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

Tags:JAVA继承

昵称*:

邮箱 :

主页 :

  • :)
  • :o
  • :D
  • ;)
  • :p
  • :mad:
  • :confused:
  • :(
  • :rolleyes:
  • :cool:
  • :eek: