/* final class A { public final void eat(){ System.out.println("测试"); } } */ class A { } class B extends A { //测试 public void eat(){ System.out.println("不能重写父类的方法"); } static final double PI=3.1415926; public void test( final int x,int y){ //x=12; 这里是不能改变的 y=33; System.out.println("x="+x+"y="+y); } public void test( final int[] x){ //表示传过来的数组的地址 可以改变里面的值 x[0]=1; //这里也是错误的!!!x=new int[]{23}; System.out.println(x[1]); } } class Demo4 { public static void main(String[] args) { new B().test(2,3); new B().test(new int[]{20,3}); A a =new A(); B b=new B(); System.out.println("a 是否是B的对象(实例) "); System.out.println("instanceof "+(a instanceof A)); System.out.println("instanceof "+(a instanceof B)); System.out.println("instanceof "+(b instanceof B)); System.out.println("instanceof "+(b instanceof A)); System.out.println("final"); } /* final 可以适用的范围: 修饰类:使用这种修饰符的类无法被继承 修饰函数:被修饰的不能被重写 修饰属性: 1.final修饰的成员变量是常量,值不能被修改 而java的命名规则:常量都要大写 当形参变量使用final修饰基本类型变量,在函数中该变量不能被修改 引用类型变量:不能改变地址 */ }