转载,原文来自http://blog.sina.com.cn/s/blog_5f79a56a0100c6wa.html
一、static 关键字
可以修饰:
1.属性--> 被static关键字修饰的属性叫类变量,是全类共有的,可直接用类名访问。
初始化类变量是在类加载是完成。
类加载:当虚拟机JVM第一次使用一个类时,会通过classpath找到这个类所对应的
字节码文件,将这个文件中包含的类信息全读入JVM并保存起来,使下次再用
这个类时就不需要再去加载,一个类只加载一次。
2.方法 -->被static关键字修饰的方法叫静态方法,可直接用类名访问。
静态方法的特点:
(1)静态方法只能访问类的静态成员(静态属性和静态方法)
(2)静态方法只能被子类中的静态方法覆盖,并且没有多态
例子:A a=new B(); A类是B类的父类
A中有m()方法,B中也有m()方法,则a.m()调用的是B中的m()方法;
如果A、B中的m()方法都是静态方法,则a.m()调用的是A中的m()方法
3.静态代码块
在类加载时运行一次
二、final关键字
可以修饰:
1.变量--> 被final修饰的变量成为常量,一旦赋值,不能被修改。
2.方法 -->如果一个方法被final修饰,说明该方法不能被子类覆盖
3.类--> 如果一个类被final修饰,说明该类不能被继承
三、abstract 抽象的
可以修饰:
1.类--> 不能创建对象,但可以声明对象的引用
2.方法 --> 只有定义,没有实现
(1)如果一个类中有抽象方法,则这个类必须是抽象类
(2)子类继承一个抽象类,如果子类不希望也成为抽象类,
就必须实现父类中所有的抽象方法
(3)抽象类中有构造方法