Java中final用法小结

Java中final用法小结
Java中final关键字用在以下三种情况:
1、声明常量
2、将某个方法声明为final
3、将某个类声明为final
第一种情况很简单,而且它经常配合static使用,因为既然是常量,则对于所有实例都是
一样的,它不随着实例而变化,所以将其声明为static。但有一点需要注意,即当声明了
一个final的object reference时,注意,这时谁为常量?是reference本身还是referenc
e指向的对象?答案是前者,例:
public class Circle
{
private double rad;
public Circle(double r)
{
  rad = r;
}
public void setRadius(double r)
{
  rad = r;
}
public double getRadius()
{
  return rad;
}
          public static void main(String[] args)
          {
                    private static final Circle p = new Circle(5);
                    p.setRadius(7);           //OK,因为p为常量,但它所引用的

                                              //对象不是常量
                    p = new Circle(7);        //Error,改变了常量p的值
}

--------------------------------------------------------------------------------

由于缺省情况下,classes所有的non-private,non-static函数都可以被子类所复写(over
ride),那么如何做才能阻止子类复写某个函数呢?答案是将该方法声明为final。例:

public class Base
{
public void foo()
{
 
}
public final void bar()
{
 
}
}
public class Derived extends Base
{
public void foo()
{
 
}
/**
  * can't override the final method of base class
  */
// public void bar()
// {
// 
// }
}

--------------------------------------------------------------------------------

那么关于final class,我想大家都可以猜出来了,对,它的目的就是防止它派生出子类,
其实,它的作用等价于将该class里面的所有方法都声明为final了。《完》

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值