final,static和abstract之间的区别是什么??

解决方案 »

  1.   

    最好的答案就是你自己学会解决问题!
    go Google!
      

  2.   

    final当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,
    这里不可改变的意思对基本类型来说是其值不可变(例如int , string , char flaost ....),
    而对于对象变量来说其引用不可再变(引用的类)其初始化可以在两个地方,
    一是其定义处,也就是说在final变量定义时直接给其赋值,
    二是在构造函数中。
    这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。还有一种用法是定义方法中的参数为final,
    对于基本类型的变量,这样做并没有什么实际意义,因为基本类型的变量在调用方法时是传值的,也就是说你可以在方法中更改这个参数变量而不会影响到调用语句,
    对于对象变量,却显得很实用,因为对象变量在传递时是传递其引用,这样你在方法中对对象变量的修改也会影响到调用语句中的对象变量,当你在方法中不需要改变作为参数的对象变量时,明确使用final进行声明,会防止你无意的修改而影响到调用方法。另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用,将方法声明为final,
    那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。final用于类身上时,
    表示此类不需要进行修改或扩展。对于final类中的成员,你可以定义其为final,也可以不是 final。而对于方法,由于所属类为final的关系,自然也就成了final型的。
      

  3.   

    http://blog.csdn.net/eako/archive/2005/12/16/554015.aspx
      

  4.   

    Abstract是Java中的一个重要关键字,可以用来修饰一个类或者一个方法。修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,而是把具体实现留给继承该类的子类。一个类中只要有一个abstract方法,那么这个类就要被声明为abstract,但是其中可以有非 abstract方法。
       abstract类可以使得类的设计者能够创建方法的原型,而真正的实现留给使用这个类的人。
       继承一个abstract类的子类,要么实现父类的所有abstract方法,要么也声明为abstract类,这时仍然可以保留一些abstract方法,把具体实现留给下一级的子类。
        abstract类和接口一样,不能创建它们的实例.一个抽象类即使有公共的构造函数,也无法通过new直接创建实例.因为既然它是抽象类,就至少有一个抽象方法,因此必须创建该抽象类的一个子类(通常为内部匿名类)实现其中的抽象方法 。
      

  5.   

    的确是个小小的问题。小到要解释清楚至少要写上三五百字。我就纳闷了,为什么不自己看看书呢。或者自己GOOGLE一下呢?