static
public class Person{ {//匿名代码块 System.out.println("匿名"); } static{//静态代码块 System.out.println("静态"); } public Person(){ System.out.println("构造方法"); } }
输出的顺序是这样的:
静态
匿名
构造方法
public static void main(String[] args){ Person p1=new Person(); Person p2=new Person(); }
这样之后
会输出:
静态
匿名
构造方法
匿名
构造方法
这说明,静态代码块只执行一次。
匿名代码块可以用来赋初始值。
静态导入包
import static ....
import static java.lang.Math.PI
抽象类
抽象类的所有方法,继承它的子类,都必须要实现它的方法,除非子类也是抽象类。
不能new这个抽象类,只能靠子类去实现它;约束!
抽象方法必须在抽象类里。