java final 和instanceof 关键字

/* 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修饰基本类型变量,在函数中该变量不能被修改
               引用类型变量:不能改变地址
            
    */
}

 

posted @ 2013-09-10 18:45  考虑到五岁的限制  阅读(449)  评论(2编辑  收藏  举报