Javafinal方法

class Animal{

    public final void eat(){

        System.out.println("");

    }

}

class Dog extends Animal{

    public void eat(){

        System.out.println("狗吃骨头");

    }

}

class Cat extends Animal{

    public void eat(){

        System.out.println("猫吃老鼠");

    }

}

class Wolf extends Animal{

    public final void eat(){

        System.out.println("吃喜羊羊");

    }

}

class Test02 {

    public static void main(String args[]){

        Animal aa[]=new Animal[3];

        

        aa[0]=new Dog();

        aa[1]=new Cat();

        aa[2]=new Wolf();

        for(int i=0;i<3;i++)

            {aa[i].eat();}

    }

}

/*

实验结果:编译不过,因为final修饰的类方法是"最终的"方法,不能被覆盖,即子类不能重写

 

为什么需要final方法呢?

    出于安全的考虑,如果方法的实现不应改变,对对象的一致性状态很重要。

*/

posted @ 2015-09-22 22:20  iucforever  阅读(212)  评论(0编辑  收藏  举报