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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王小忠 中级黑马   /  2014-11-19 19:20  /  2025 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王小忠 于 2014-11-24 13:33 编辑

   有一个方法,如下:
                void fun(final  int  b){}
    请问这个方法还可以被重载吗?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

11 个回复

倒序浏览
本帖最后由 青鱼 于 2014-11-19 19:30 编辑

final 最终修饰符, 有三个用途

final 成员变量时:   代表常量, 不能再修改该常量的值,
        楼主的问题属于这种, 类可以被继承和方法重载,
       但不能修改 b 常量, 即传值进去后使用就可以了, 不能在方法内给 b 赋值;

final 方法时:  方法不可被重载, 也就是说可以有子类, 但子类不可以覆盖该方法;
final 类时:   类将不可以被继承

:hug:加油

评分

参与人数 1技术分 +1 收起 理由
sk0806 + 1

查看全部评分

回复 使用道具 举报 1 0
那如果~~形参是对象呢?
比如:
void fun(final Person p){}
回复 使用道具 举报
我觉得可以,这里修饰形参只是说明形参不能在函数内不能再次赋值。
回复 使用道具 举报
王小忠 发表于 2014-11-19 19:44
那如果~~形参是对象呢?
比如:
void fun(final Person p){}

是对象也一样啊,就是说如果p指向了实参传进来的那个对象,那么p就不能再指向别的对象了
回复 使用道具 举报
青鱼 发表于 2014-11-19 19:28
final 最终修饰符, 有三个用途

final 成员变量时:   代表常量, 不能再修改该常量的值,

高手高手搞搞手
回复 使用道具 举报
青鱼 中级黑马 2014-11-19 22:56:39
7#
王小忠 发表于 2014-11-19 19:44
那如果~~形参是对象呢?
比如:
void fun(final Person p){}

:lol 楼主真有想法, 一样的啊, p 变量成为常量, p不可再被赋值, 也就是说 p 的对象不可以再更改为其它 person的另一个对象
回复 使用道具 举报
为了防止形参被恶意修改
回复 使用道具 举报
theking 来自手机 中级黑马 2014-11-20 00:41:01
9#
好问题!我也不清楚,我是来看大神解答的,受教了!
回复 使用道具 举报
重载只是方法内部的参数不一样,可以重载
回复 使用道具 举报
final修饰的问题:
    修饰变量,则变量不能被修改
    修饰方法:则方法不能被覆盖
回复 使用道具 举报
修饰类,类不能被继承
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马