码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA final关键字:

时间:2016-06-05 21:20:30      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

使用场景:(1).继承中,父类中的某个方法不允许子类通过继承来覆写,可以在父类中用final来修饰该方法。(2).final除了修饰方法、还可以用来修饰类和变量

修饰类:final修饰的类是最终类,不能再有子类,即不能再有类继承该类。

修饰方法:final修饰的方法不能被覆写。

修饰变量:final修饰的变量是常量,只能赋值一次,赋值后不能再被修改。

class Father

{

public   void display()

{

System.out.println("father");

}

}

class Son extends Father

{

public void display()

{

System.out.println("son");

}

}

public class Demo {

public static void  main(String[] args) {

Son son=new Son();

son.display();

}

}

在上面的例子中,如果不对父类的方法display使用static,则子类可以继承父类的方法并且覆写该方法,这个时候例子的结果输入为son.

但是如果在该例子中对父类方法使用static  public static  void display(),则方法报错,因为使用static之后,父类的方法不允许子类覆写

 

Final修饰变量例子:

 class Father

{

  public  int  num=10;

public   void display()

{

System.out.println("father");

}

}

  class  Son extends Father

{

public void display()

{

num=100;

}

}

public class Demo {

public static void  main(String[] args) {

Son son=new Son();

System.out.println(son.num);

}

}

上面的例子中,输入结果为100,子类对父类中的变量进行了重新赋值。是有效的。

但是如果把父类中的num添加关键字final变成 public  final int  num=10则例子中会报错,无法执行。原因在于父类把num变量已经定义为final,声明该num变量为常量,不可以再修改。(final定义的变量是一种自定义的常量)

JAVA final关键字:

标签:

原文地址:http://www.cnblogs.com/positiveh/p/5561637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!