浅谈final关键字

2015-08-18 10:51 阅读 6,244 次 评论 0 条

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修饰的常量只能被赋值一次,赋值后不能改变

你可能感兴趣的文章

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/335.html ,谢谢支持!

资源分享

分类:Java基础 标签:
盘点2018年,那些做过的事情 盘点2018年,那些做过的事情
生活杂谈之阿里云免费虚拟主机申请过程详解 生活杂谈之阿里云免费虚拟主机申
如何生成类似新浪微博中的长图片 如何生成类似新浪微博中的长图片
浅谈Comparator接口使用方法 浅谈Comparator接口使用方法