package com.demo01;
public class Static extends demo{
/**
* @param args
*/
private static String str = "这是静态变量-------";
private String name;
int b = 20;
private static int a= 100;
//静态的重写父类的静态方法
public static void eat(){
System.out.println("子类重写的静态方法-====");
}
public void display(){
super.eat();
}
public static void staticMethod(){
System.out.println("这是静态的方法---");
//System.out.println(this.a+this.b);在静态方法中不能使用this关键字
//System.out.println(b);不能直接访问非static变量和方法
System.out.println(Static.a);
}
public Static() {
System.out.println("这是选择器的--------");
}
static{
System.out.println("这是静态代码块1------");
}
static{
System.out.println("这是静态代码块2------");
}
public static void study(){
System.out.println("这是静态的方法-------");
}
/*
* 这是静态代码块------
这是选择器的--------
这是静态变量-------
这是静态的方法-------
静态的代码块在代码加载时就执行,且只加载一次。其他从上到下依次执行
静态方法必须实例化
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Static st = new Static();
System.out.println(Static.str);
Static.study();
Static st1 = new Static();
Static st2 = new Static();
Static t = new Static();
System.out.println(t.b);
Static.staticMethod();
System.out.println(Static.a);
t.display();
t.eat();
}
}
class demo{
protected static int num = 52;
public static void eat(){
System.out.println("父类的静态方法-------");
}
}