Java关键字 final和static

一、final关键字

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

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

2.1 重载例子:

public  class TestFinalClass {

public static void main(String args[]){

}

public void add(int i){

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

}

}

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;//不能给予值

}

}

二、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 对于方法,表示不可覆盖,并且可以通过类名直接访问。

时间: 2024-12-07 19:33:30

Java关键字 final和static的相关文章

Java关键字final、static使用总结

Java关键字final.static使用总结 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不

[转] Java关键字final、static使用总结

Java关键字final.static使用总结 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不

转!Java关键字final、static使用总结

Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的. final方法不能被子类的方法覆盖,但可以被继承. final成员变量表示常量,只能被赋值一次,赋值后值不再改变. final不能用于修饰构造方法. 注意:父类的private成员方法

Java关键字final、static使用总结(转)

原文链接:Java关键字final, static一些要点 1. final final类不能被继承,没有子类,final类中的方法默认是final的 final方法不能被子类的方法复盖,但可以被继承 final成员变量表示常量,只能被赋值一次,赋值后不能再被改变 final不能用于修饰构造方法 private不能被子类方法覆盖,private类型的方法默认是final类型的 final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. 注意:final变量定义的时候,可以

Java关键字final、static使用总结(转)

Java关键字final.static使用总结 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不

【转】Java关键字final、static使用总结

转自:http://lavasoft.blog.51cto.com/62575/18771/ Java关键字final.static使用总结 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.      

[Java] 关键字final、static使用总结

一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率.final类不能被继承,没有子类,final类中的方法默认是final的.final方法不能被子类的方法覆盖,但可以被继承.final成员变量表示常量,只能被赋值一次,赋值后值不再改变.final不能用于修饰构造方法.注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是

对Java关键字final和static的理解

一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的. final方法不能被子类的方法覆盖,但可以被继承. final成员变量表示常量,只能被赋值一次,赋值后值不再改变. final不能用于修饰构造方法. 注意:父类的private成员方法是不能被子类方法覆

Java中关键字final、static的使用总结

一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量. final类不能被继承,没有子类,final类中的方法默认是final的. final方法不能被子类的方法覆盖,但可以被继承. final成员变量表示常量,只能被赋值一次,赋值后值不再改变. final不能用于修饰构造方法. 注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的.