黑马程序员技术交流社区

标题: final修饰的方法可以被重载吗 [打印本页]

作者: hellotaomi    时间: 2015-5-28 11:22
标题: final修饰的方法可以被重载吗
我都知道被final修饰的方法不能被覆盖,但是能被重载吗,网上我搜索了一下,有说可以的也有说不可以的,那到底可不可以呢?求大神解答!

作者: zouzouzou    时间: 2015-5-28 12:01
我觉得应该可以,覆盖是将之前的方法重写,但是重载是参数或返回值不同。。
作者: 小悟空et    时间: 2015-5-28 12:15
试了一下,没问题
  1. public class ShiYan {
  2.         public static void main(String[] args)
  3.         {
  4.                 Methods m = new Methods();
  5.                 m.Out1(5);
  6.                 m.Out1("haha", 5);
  7.                
  8.         }

  9. }

  10. class Methods
  11. {
  12.         public final void Out1(int x )
  13.         {
  14.                 System.out.println("Out1 number is "+x);
  15.         }
  16.         public void Out1(String s,int x )
  17.         {
  18.                 System.out.println("Out2 number is "+x+";String is "+s);
  19.         }
  20.         
  21. }
复制代码


结果
Out1 number is 5
Out2 number is 5;String is haha

作者: huadengaiyue    时间: 2015-5-28 12:24
不能                  
作者: string1    时间: 2015-5-28 12:26
好像不能
作者: 白水丶    时间: 2015-5-28 12:33
应该可以吧,不太清楚
作者: Z-CQ    时间: 2015-5-28 12:38
好给力啊,赞一个
作者: 南山忆    时间: 2015-5-28 13:14
两个不同的函数,当然可以
作者: zheng72566    时间: 2015-5-28 13:33
围观学习
作者: canyellwang    时间: 2015-5-28 14:11
学习~~~~~~~~~~
作者: Always,    时间: 2015-5-28 15:18
  围观学习、
作者: 星辉祝愿    时间: 2015-5-28 15:40
围观学习
作者: zhangjnia    时间: 2015-5-28 17:31
应该可以
作者: KK要有光    时间: 2015-5-28 18:27
inal—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的类变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。局部变量声明时可以不赋值,生命周期内只能赋值一次。被声明为final的方法也同样只能使用,不能重写(子类覆盖),可以重载。
作者: lucien_he    时间: 2015-5-28 18:34
围观学习~
作者: zw937820438    时间: 2015-5-28 18:54
final修饰的最终变量,其实是一个常量,不可以被重写
作者: L番茄X    时间: 2015-5-28 18:57
老师讲是最终的.不过它还可以赋值一次,就是在定义final的时候没有赋值,就可以再赋值一次.
作者: gaoer    时间: 2015-5-28 19:10
不明绝力啊~~~~~~~~~!
作者: zhw634631    时间: 2015-5-28 20:02
不同的函数
作者: fried_lai    时间: 2015-5-28 20:21
看你们的评论把我搞乱了,到底是能呢还是能呢,还是不能
作者: 守株人    时间: 2015-5-28 20:59
不能被覆盖,覆盖就是重写,是子类重写父类的,final不能被重写(覆盖)
作者: a397131103    时间: 2015-5-28 21:08
这点我也不清楚 希望学霸们给个好的回答
作者: ZYZQ    时间: 2015-5-28 21:16
试一下就好了;额
作者: 开弓没有回头箭    时间: 2015-5-28 22:21
可以重载,不能覆盖
作者: 灞波儿奔    时间: 2015-5-28 22:53
可以重载  
作者: 唐海    时间: 2015-5-28 22:58
肯定能啊,不能重写跟重载有毛线关系啊
作者: Lucus    时间: 2015-5-28 23:15
学习了,这个真不懂啊!!
作者: wuyusi    时间: 2015-5-28 23:22
可以重载,不能复写
作者: 半世心修    时间: 2015-5-28 23:32
重载嘛,那就不是一个方法了~
作者: 途中ms前进    时间: 2015-5-28 23:44
围观学习
作者: luxinyu    时间: 2015-5-29 00:14
应该是可以的。。final修饰的方法在子类是不可见的,所以不能被覆盖,即使出现相同方法也不会被看作是覆盖 但是final修饰的方法还是可以被重载的
作者: 武汉小菜鸟    时间: 2015-5-29 00:19

被final修饰的方法不能被覆盖,(没有说不可以被重载),不信,你写一个程序就知道了
作者: !85684009ex    时间: 2015-5-29 07:37
膜拜大神!这个不能!
作者: 全是爱    时间: 2015-5-29 07:50
你试一下不就知道了
作者: qian0217wei    时间: 2015-5-29 08:12
当然可以!两个不同的函数
作者: 张海旭    时间: 2015-5-29 21:26
顶顶顶:victory:




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2