请问抽象类里可以设置构造涵数吗?为什么?

解决方案 »

  1.   

    of course you can!
    you can do anything in abstract class!
      

  2.   

    public class A extends B{ 
    int j =20;
        public static void main(String[] args) {
    System.out.println(new A().i);
        }
    void doSth(){}
    }abstract class B{
    int i=10;
    public B(){
    i=100;
    }
    abstract void doSth();
    }要理解为什么需要抽象类
      

  3.   

    to kingofhawks(蓝鹰) 
    (因为抽象类必定存在没有实现的函数)这句话是错误的,谁规定抽象类必须有抽象函数呀?
      

  4.   

    经测试,abstract class确实可以没有任何abstract method,不过从设计角度来说还是应该避免这种设计,那样abstract的本意就失去了作用.谢谢 treeroot(旗鲁特) ( )的提醒.
      

  5.   

    treeroot(旗鲁特) ( )  是对的。体会一下JDK中一些适配器:抽象类,全部是普通方法,没有抽象方法。
      

  6.   

    呵呵,我是几个月来一次。
    那位星星好像改了,treeroot()我有印象,旗鲁特应该是改过的。
    唉,大家怎么不用实名?对自己也是一个约束。
      

  7.   

    呵呵,我就在java斑逛啊,最近比较空一点,经常上来晃悠~~
      

  8.   

    抽象类之所以有构造函数,是因为为了产生子类;
    在默认情况下,子类实例产生前,先调用父类的构造方法,这个是java的语义
      

  9.   

    在Effective Java中好像有说要有子类,必须提供protected 或者public的构造方法;
    如果private的,则不能拥有子类;
    抽象类一定是父类