public class FinalTest {
final int a ; // final类型的值(1)可以在定义的时候初始化,之后就不可以改变了 。
public FinalTest() //final类型的值(2)或者通过构造函数初始化,但必须所有的构造函数都必须初始化final变量,可以不同,具体调用哪个看构造函数参数。
{
System.out.println("1111111");
a = 0;
}
public FinalTest(int b)
{
a= 1;
System.out.println("11111dddd11");
}
public static void main(String[] args)
{
//FinalTest finaltest = new FinalTest(2);
//finaltest.test();
FinalTest1 finaltest1 = new FinalTest1(); //先调用子类的静态代码块,之后调用父类的构造函数,再调用子类的程序代码块,最后调用子类的构造函数
finaltest1.output();
}
final public void test()
{
System.out.println("The method of fianl is not override");
}
}
final class FinalTest1 extends FinalTest
{
// public void test(){} //fianl函数不能被重写。
public void output()
{
System.out.println("It is a final class");
}
static //静态代码块
{
System.out.println("It is a static block");
}
//程序代码块
{
System.out.println("It is a programming block");
}
}
//class FInalTest2 extends FinalTest1{} //final类不能被继承了(final类为最终类)