| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1181 人关注过本帖
标题:关于继承
只看楼主 加入收藏
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
关于 final 的理解:在父类中定义为 final 的方法只是确保了该方法在其子类中不能被 overload, 但是确是可以被继承的, 所谓继承是指父类的方法和变量在其子类中有效,  至于是不是可以overload取决于你是不是将某一个变量或方法定义为 final , 如果定义为 final 则该变量或方法被最终定型,也就是说不能被改写.

所以很清楚了,如果将父类中的某一方法定义为 final,  对于子类而言,该方法是可见的,只是不能被overload 而已,也就是说不能被重载而已,或者说不能被修改而已.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-14 15:53
tmy300
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-11
收藏
得分:0 
看来是没办法了,呵呵!那只好做罢了!多谢各位!

2005-08-14 22:17
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
父类方法不给子类用,搞笑啊,你们,用private不就可以了。kai啊,丢人呐

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-08-16 17:59
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
tempnetbar 的观点是对的,我上面的观点有误,现纠正如下: 通过将父类的变量或方法的访问修饰符的类型设置为private, 可以 实现父类的方法或变量不被子类访问, 举例如下: class Father { int a = 3; private int b = 4; void method1() { System.out.println("This is method1, set as default"); } private void method2() { System.out.println("This is method2, set as private"); } protected void method3() { System.out.println("This is method3, set as protected"); } public void method4() { System.out.println("This is method4, set as public"); } } public class Son extends Father { void changeValues() { a = 6; //b =8; // 如果将此注释符号去掉,则出错, //因为变量 b 在父类中被声明为 private, 那么其在子类中是不可以被访问的。 System.out.println("now a is " + a); } public static void main(String [] args) { Son sunObject = new Son(); sunObject.method1(); //sunObject.method2(); // 同样的如果这里的 注释号 被去掉,编译时 将报错,原因和上面的解释一样。 sunObject.method3(); sunObject.method4(); sunObject.changeValues(); } } 这回丢人丢大了,惭愧啊! tempnetbar, 如果你不指出,我到现在还不会清醒。多谢指正。 你以后也要当心点,我也要抓抓你的小辫子的,哈哈,

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-16 20:10
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
呵呵,见笑了kai,其实也不是有意抓小辫子,只是信口胡说的,呵呵,别生气啊。不知道你考过SCJP没有,我考过,不是说考过了怎么怎么,我觉得他对我的基础掌握确实有帮助啊呵呵

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-08-16 21:24
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
互相帮助麻, 能被别人指出错误是好事, 这样才有进步嘛.
生气, 何来气也? 希望过几天tmy300 能够看到这个帖子, 这样他就能知道正解了.

其实今天看到你的回帖, 仿佛一棍打醒梦中人, 这样的错误, 我当时怎么就这么冒失地说出了如此之谬论呢. 不解啊.还好你的及时提醒啊, 不然真的是要误人子弟了. 惭愧,惭愧...

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-16 23:50
tmy300
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-11
收藏
得分:0 
多谢各位大虾的帮忙,呵呵,好多天没来了,其实我对private public 和protected是了解的,只是我老师不知道怎么想到这个怪问题的,哈哈!
我老师的意思是因为父类是别人写的,所以没有原代码,子类是老师写的,而那个父类的方法是public属性,所以就不能不继承,而又要在子类写完后别人用那个子类时不能用那个父类的public方法。

2005-08-23 19:14
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
tmy300, 那个父类中的 public 方法 在 子类中不可见,我认为是不可能的,也就是说是做不到的。 别想了,没什么好想的。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-24 09:17
tmy300
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-11
收藏
得分:0 
没错,我想也应该是不可能的,呵呵!不想了!

2005-08-24 15:48
hanjiangxue
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-12-20
收藏
得分:0 

楼上几位真实真知灼见,小弟受益匪浅,希望以后kai和tempnetbar能给我带来更多这样的精彩辩论


sai
2005-12-20 10:59
快速回复:关于继承
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017170 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved