Java学习(final关键)

final在Java中用于声明不可变的类、变量和方法。final类不能被继承,如String和Integer类,确保了类的封闭性。final变量一旦赋值后不可改变,常与static一起用于定义全局常量。final修饰的方法不能被子类重写,提供固定的实现。final不能修饰构造器,因为每个对象都有唯一的构造器。
摘要由CSDN通过智能技术生成

final的意思是最终的。先看一下final声明类:

public final class Demo{

}

可以正常编译,这说明final是可以用来声明类的。那最终的类又是什么意思呢?在学习常量的时候用到了final这个关键字,常量不允许修改。那用final修饰的类应该也是不能修改的,那类是怎么修改的呢?是根据Java的继承性来对父类进行延伸以及重写父类的方法来进行修改的。所以final修饰的类应该就是不能被继承的。

public class Demo1 extends Demo{

}

上述代码会编译出错(extends是子类继承父类的关键字)。所以final修饰的类不能被继承,因此final修饰的类也叫做太监类(不能有子类)。final修饰的类通常是一些不需要拓展的工具类,比如String类,Integer类等。

final修饰属性就是常量,它只能被赋值一次,之后不能修改,所以它常常跟static合用,通过static final(final static也可以)将其设计成全局常量(类常量),让所有对象都能够共享。

final可以修饰方法。用final修饰方法的目的显然就是让子类无法重写该方法了。在修饰方法的时候final也可以搭配着static一起使用。

final修饰构造器:

public class Person{
    public final Person(){}
}

上述代码会编译出错,也就是说final无法用来修饰构造器,为什么呢?因为构造器是用来创建对象的,不同的类的构造器肯定也是不同的,所以不需要用final来修饰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值