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方法呢?
出于安全的考虑,如果方法的实现不应改变,对对象的一致性状态很重要。
*/