ZSMAN 发表于 2015-5-5 18:18
重写是为了屏蔽父类的方法,静态能使外部直接调用父类方法,所以静态覆盖静态没有意义~这是我的理解~~ ...
fantacyleo 发表于 2015-5-5 18:21
静态函数不能被覆盖,只能被隐藏。不能被覆盖,意味着静态函数不参与多态判断。引用变量类型是什么,就调用 ...
15059320049 发表于 2015-5-5 18:54
前面几楼说的正确,我从内存上分析下,静态方法是存储在方法区中,在方法区中父类和子类各自都有这个方法的 ...
一只玉米 发表于 2015-5-5 21:32
非静态时,外部也可以用new Fu() 对象来调用啊
一只玉米 发表于 2015-5-5 21:32
非静态时,外部也可以用new Fu() 对象来调用啊
ZSMAN 发表于 2015-5-5 21:47
如果覆盖成功,
Fu z=new Zi();
z.method();
一只玉米 发表于 2015-5-5 22:10
是,执行子类的方法。但是 。。。又能说明什么,还有为啥都往多态上联想呢 ...
一只玉米 发表于 2015-5-5 21:36
和多态有关系?当时毕老师还没讲多态呢。还有 静态可以覆盖静态。
15059320049 发表于 2015-5-5 22:47
可以覆盖,看我说的就知道没意义了。因为不能实现多态
ZSMAN 发表于 2015-5-5 22:24
Fu z=new Zi();
z.method();
这个结果你看了吗?它的结果是执行了父类的方法~你觉得覆盖成功了 ...
as12510 发表于 2015-5-5 22:20
父类和子类中的静态方法分别可以通过类名调用,严格意义上来讲,静态的不算重写,因为静态是在方法区的静态 ...
QQ图片20150506081706.png (178.68 KB, 下载次数: 23)
1.png (130.97 KB, 下载次数: 27)
hufu4635 发表于 2015-5-6 08:11
这个不是覆盖成功了,这个的意思相当于,子类实际上写了一个新的方法,重写只适用于实例方法的,不能用于静 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |