Java final修饰符详解。

fina修饰符的用途

一、修饰类

        final类不能被继承

二、修饰方法

          final方法可以被继承,但是不能被子类重写                

三、修饰类属性(int,double等)

        特别注意,类似于c++const,被final修饰的属性必须进行初始化,因为要构造后将不能再更改

      1、在定义的时候就初始化。

      2、在构造函数中初始化。

  

final class A{

}

class C{

      
 

    // final修饰的属性要么在定义的时候初始化,
   //要么在构造函数中初始化,否则会出错,因为在后续就无法赋值了

    // 1、构造函数初始化法
    final int j;

    C(int j){
        this.j=j;
    }

// 2、直接初始化法
    //  final int j=1;

    final void f(){
        System.out.println("ccc");
    }

}

// 抽象类不能被继承
/* 
class B extends A{

}
 */


class D extends C{

    D(int j){
        super(j);
    }


    // 错误,无法覆盖C中的final方法,final方法并不是不能被继承,而是被继承后无法被重写,
/*     
    void f(){
        System.out.println("DDD");
    } 
*/



}

public class final_Test{
    public static void main(String[] args) {
        D dd=new D(1);
        dd.f();
        
    }


}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值