Java学习笔记(2)-final关键字

1.Blank Finals

public class BlankFinal {
  private final int i;
  private final Sample j;
  // 未初始化的Final类型必须在每个构造器里都初始化
  public BlankFinal() {
    i = 1;
    j = new Sample();
  }
  public BlankFinal(int x) {
    i = x;
    j = new Sample();
  }
}

2.final参数

  public class FinalArguments {
    void Sample(final Object g) {
    	// final类型参数不能修改引用指向
    	g = new Student();
    }
  }

3.final方法

Class First {
  private void f() {}
}
Class Second extends First{
  private void f() {System.out.println("I override!");}
}
Public class Test {
  Second s = new Second();
  s.f();
  First fr = new Second();
  // fr.f() 会出错,因为你并未Override成功,成功调用的s.f()方法只是一个新的方法罢了,First的f()被private隐藏起来了。
}

1.final方法其实就是private方法,无法被Override,所以有private无需再加final。
2.private方法不可Override。

final类
不可被继承(就是不可被修改)。

P189页讲了在java 1.0/1.1 library里面Vector方法都是final的,然而Stack还继承了Vector。后来用ArrayList取代了Vector。同时用HashMap取代了Hashtable(方法命名问题)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值