final在Java编程中使用的也比较多,表示“最终的,最后的,无法改变”的意思,我们使用final来修饰非抽象类、非抽象成员方法、变量和常亮,由于final的特殊作用,可以在某个方面提高效率。
1、final修饰的非抽象类不能被继承,没有子类,final类中定义的方法默认是final方法
public final class Animal {
public void setName(String name){
System.out.println(name);
}
}
public Cat extends Animal{//这里编译的时候会报错,因为final修改的Animal不能被Cat继承
public static void main(String []args){
Cat cat=new Cat();
cat.setName("我叫小猫");
}
}
2、final修饰的非抽象成员方法可以被继承,但不能被子类中的方法覆盖
public class Animal {//去掉修饰类Animal的关键字final
public final void setName(String name){//final修饰Animal类中的setName方法,表明该方法可以被继承,不能被覆盖
System.out.println(name);
}
}
public Dog extends Animal{//这里编译的时候会报错,因为final修改的Animal不能被Cat继承
public static void main(String []args){
Dog dog=new Dog();
dog.setName("我叫小狗");
}
public void setName(String name){//这里会报错,原因是父类中final修饰的setName()方法不能在子类中被覆盖
System.out.println(name);
}
}
3、final修饰的变量引用不能被修改,但是指向引用的内容是可以改变的
4、final修饰的常量只能被赋值一次,赋值后不能改变
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/335.html ,谢谢支持!