Java关键字 final和static

1、final关键字ide

1.final类是不能被继承的,因此也就没有子类了。例子以下:会报错wKiom1SSP_GyDoSWAACiK4F7LcU820.jpgspa

2.final 方法 顺便复习下重载和重写blog

2.1 重载例子:继承

public  class TestFinalClass {get

    public static void main(String args[]){编译器

       

    }it

    public void add(int i){io

        System.out.print("parents..add...");编译

    }class

}

class TestChildrenClass extends TestFinalClass{

     public void add(int i,int j){

          System.out.print("children...add");

          System.out.print("33333");

     }

}

2.2 重写 override

public  class TestFinalClass {

//    private String name;

    public static void main(String args[]){

       new TestChildrenClass().add(0);

    }

    public void add(int i){

        System.out.print("parents..add...");

    }

}

class TestChildrenClass extends TestFinalClass{

     public void add(int i){

          System.out.print("children...add");

          System.out.print("33333");

     }

}

2.3 若是父类不想子类重写它的某个方法就能够用final来定义该方法,例子以下

public  class TestFinalClass {

//    private String name;

    public static void main(String args[]){

       new TestChildrenClass().add(0);

    }

    public final void add(int i){

        System.out.print("parents..add...");

    }

}

class TestChildrenClass extends TestFinalClass{

     public void add(int i){//这样写会报错,没法重写

          System.out.print("children...add");

          System.out.print("33333");

     }

}

除了上面这个用处,还有个用处就是高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提升执行效率。

3.final变量

public class TestFinalClass {

    public final static String s = ".......final s";

    public final int E =1; //final成员变量必须付初值

//    private String name;

    public static void main(String args[]){


    }

    public static void add(int i){

        final String m; //final非成员变量能够不用初值

        m = "...m"; //  给予初值

        m = "..sdjf";//出错  不能再给予值

    }

}

4.final参数

public class TestFinalClass {

    public static void main(String args[]){

    }

    public static void add(final int i){

        System.out.print(""+i);   //  只能使用该参数

        i = 0;//不能给予值

    }

}

2、static 关键字

1.static方法

public class TestFinalClass {

    public static void main(String args[]){

         TestChildrenClass.add(0); //能够在类建立以前引用这个static方法

    }

}

class TestChildrenClass {

     public static void add(int i){//然而是不能经过类的实例来引用的

          System.out.print("children...add");

     }

}

2.static 成员变量

public class TestFinalClass {

    public static void main(String args[]){

         String name = TestChildrenClass.name;//静态成员

    }

}

class TestChildrenClass {

     public static String name = "user";//不能经过类的实例来引用的,当用private修饰时就不能够用了

}

3.当static与final一块儿使用来修饰成员变量和成员方法,可简单理解为“全局常量”! 3.1 对于变量,表示一旦给值就不可修改,而且经过类名能够访问。 3.2 对于方法,表示不可覆盖,而且能够经过类名直接访问。

相关文章
相关标签/搜索