一、static
静态变量能否继承?
静态变量属于类,是共享的资源,不认为是被继承的
静态变量不可以定义在静态方法中,
静态方法中先于对象存在, 不能使用 this super
静态方法中可以直接调用静态方法。
静态方法不能直接调用非静态方法。
静态方法可以重写吗?
静态方法可以重载吗?
怎么调用静态方法
静态方法也是通过类名来访问,也可以通过对象来访问,但是不推荐。在实际过程中都是通过类名来调用的。如:Arrays.sort(arr);
静态代码块
静态代码块是岁了类的加载而加载到方法区中,在类创建对象的时候或者类调用静态方法的时候执行一次,终其一生只执行一次。
package com.oracle.staticx;
public class StaticDemo4 {
public static void main(String[] args) {
// new A();
// new A();
// new A();
// new B(); // A1 B1 A2 A3 B2 B3
//new A();
B.m();
}
}
class A{
static{
System.out.println("A1");
}
/**
* 构造代码块,构造代码块是先于构造方法执行的
*/
{
System.out.println("A2");
}
/**
* 构造方法
*/
public A(){
System.out.println("A3");
}
}
class B extends A{
static{
System.out.println("B1");
}
{
System.out.println("B2");
}
public B(){
super();
System.out.println("B3");
}
public static void m(){
System.out.println("M");
}
}
二、final
final 可以修饰哪些?
三、常量
也就是 static final