浅谈final关键字

2015-08-18 10:51 评论 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修饰的常量只能被赋值一次,赋值后不能改变

当前文章价值0.64元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/335.html ,谢谢支持!

资源分享

分类:Java基础 标签:
解决代理账号或FQ:Genymotion离线安装包 解决代理账号或FQ:Genymotio
Ubuntu系统ERROR 2002 (HY000) Can not connect to local MySQL server through socket varrunmysqldmysqld Ubuntu系统ERROR 2002 (H
配置Linux主机防盗链 配置Linux主机防盗链
浅谈SortedList方法使用 浅谈SortedList方法使用

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情