A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹昌豪 中级黑马   /  2012-6-1 16:52  /  1832 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

final含义是不可变的,修饰的成员不可以改变,可以理解,修饰的方法不可以被重写,修饰的类不可以被继承,怎么解释的啊

6 个回复

倒序浏览
本来,final就有最终的意思,不要去纠结这样的问题,没意思!记住就行啦
回复 使用道具 举报
就是说被final修饰的类 不能做别人的父类就是哦
回复 使用道具 举报
张洁 来自手机 中级黑马 2012-6-1 18:55:23
板凳
被final修饰的方法不可以被重写,被final修饰的类不可以被继承,这在java中就是这样规定的,应该没有什么原因吧!
lz如果不理解的话,可以这样想,就是如果你不希望子类重写父类的某个方法的话,就用final来修饰这个方法
回复 使用道具 举报
这个就是硬性规定的吧,记住就可以了:
final修饰变量。表示变量不可被再赋值变成了常量。
final修饰方法,表示方法不可被重写了。
final修饰类,表示类不可被继承了。

回复 使用道具 举报
final表示最终的意思,它修饰的类是不能被继承的;final修饰的方法能被继承(Math类里就有),但是不能够被重写。其实关系并不复杂,你只需要记住这样一句话:final可用于声明属性、方法和类,分别表示属性不可变,方法不可重写,类不可继承。当然final修饰的方法是可以被重载的
回复 使用道具 举报
final修饰基本数据:在java中,编译器有时需要将某些常量用于许多计算表达式,在编译期完成计算,可以将常量用final关键字修饰并在定义时赋值并且标志符大写。如:final static double PI=3.1415926。 final修饰对象引用时,表示引用被初始化指向某个对象后,就无法再使其指向另一个对象。如:
class Student{     int age;    
 public Student(int age){this.age=age;}  }
public class ShowAge{  private String age;  
  private static final Student st=new Student(20);  
  public ShowAge(String age){     this.age=age;    }  
  public static void main (String[] args){       ShowAge sA=new ShowAge("age");    
 sA.st=new Student(21); //错误提示:The final field ShowAge.st cannot be assigned  
   }    }  
final作为参数格式:f(final int i){};此时表示可以读参数不能修改,可用来向匿名内部类传递数据。 final方法:锁定方法,防止继承类修改。 final类:当类不需要被继承时,定义时加final关键字即可实现 final class A{} class B extends A{}  //会出现错误提示
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马