大家好!总是分不清 static 和 final , abstract 的区别   请大家指点一下~

解决方案 »

  1.   

    Static
    1. static修饰的属相和方法属于整个类的属性和方法,在创建类的对象时只开辟一块内存空间,所用对象共用这块内存空间。
    2. 静态初始化块的使用:
    Static { 初始化代码 }
    Final1. fianl修饰的变量是常量,其值不能在被改变。常量的只能初始化一次,其后只不能再被改变,而且初始化只有两种方式:一、在定义的时候初始化。二、在类的构造函数中初始化.
    2. fianl修饰的方法为最终方法,不能被覆盖但可以被继承。
    3. final修饰的类为最终类,不能再被继承。
    Abstract
    1. abstract 修饰的类为抽象类,不能实例化
    2. abstract 修饰的方法为抽象方法,抽象方法只有方法头没有方法体,在子类的类中必须实现父类的所有抽象方法。即:抽象类中不一定有抽象方法,但有抽象方法的类必须声明为抽象类。
      

  2.   

    abstract是抽象的,留着方法等着子类实现,为继承多态而生。static是静态的,不用实例化就可以用。final是常量,只读不可修改。
      

  3.   

      static  
       当系统需要为某一个变量或者常量分配某个固定的内存区域,就会用到static
       当你想调用你一个方法但不想创建对象,就可以通过类名来调用这个方法
       在web开发中 一般是定义常量多点 如: public static final String name="ZHANG_SAN";
     final 
       可以结合static 用,声明一个固定常量
        如果你不希望你的类或者方法被继承,就可以使用此关键字
        如果你不希望你的属性被修改,也可以用此关键字修饰(注:此种用法也有一定的风险,通过反射一样是可以修改定义成private final 属性的)
       abstract  
        抽象一般是父类,你可以在这个类中定义公共的东西,让使用的类继承此类就可以了
        接口本身也是抽象类
       个人见解,写的也比较乱,LZ 随便看看。
      

  4.   


    他说的就是我想说的!VERY GOOD!
      

  5.   

    建议你去看下《SCJP学习指南》