Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 关于继承容易模糊的概念
xiaopan





发贴: 71
积分: 20
于 2003-03-18 09:49 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
JAVA作为面向对象的语言,最重要的的三个概念就是封装、继承、多态。在这里我想对继承中容易模糊的问题做一下补充:
大家在使用继承时,都知道父类中访问修饰符声明为PUBLIC,PROTECT的数据成员和方法可以被子类直接访问,但是PRIVATE的变量和方法就不能被访问,以上的说法其实是不正确的。其实子类通过extends继承了父类,子类会把父类中所有的方法和数据成员作一份拷贝变成自己的东西,无论父类中的声明为什么,PRIVATE修饰的在子类中只是不能被直接使用罢了,如果继承过来的public方法中有使用某个private变量,那么在子类中就能被访问,只是通过继承来的方法罢了。所以说继承是把父类的任何东西都作了一份拷贝在子类中,只是有的可以直接使用,有的不能直接使用。
第二,继承完之后,子类的东西是子类自己的,父类的是父类的,两者之间不会相互影响。比如:父类有一个public int i = 5变量,在子类中通过使用super.i=6会不会把父类的 i 改变为6呢?当然是不会的,子类中的 i 和父类的 i 的关系只是前者是后者的一个拷贝罢了,拷贝晚了之后,其实是没有关系的,不会相互影响;如果在子类中也声明了public int i 又将是什么情况呢? 这时候,在子类中实际上有两个 i 一个是他自己的,另为一个是父类的拷贝,两者是同名同姓的,但是通过this 和 super区分,不会相互混淆。这种情况发生方法就是所谓方法覆盖或重写,但是,实际上子类还是有两个方法(注意是两个),默认使用的覆盖后的方法。




话题树型展开
人气 标题 作者 字数 发贴时间
5542 关于继承容易模糊的概念 xiaopan 660 2003-03-18 09:49
4996 Re:关于继承容易模糊的概念 mochow 137 2003-03-18 14:11
4645 Re:关于继承容易模糊的概念[RE:MOCHOW] xiaopan 26 2003-03-18 14:27
4344 Re:关于继承容易模糊的概念 javaren 597 2003-03-18 18:48
4548 Re:关于继承容易模糊的概念 snowbug 275 2003-03-18 23:03
4253 Re:关于继承容易模糊的概念 javaren 228 2003-03-19 13:06
4454 Re:关于继承容易模糊的概念 floater 68 2003-03-19 23:55
4351 Re:关于继承容易模糊的概念 javaren 1211 2003-03-20 09:56
4758 Re:关于继承容易模糊的概念 floater 1495 2003-03-20 23:36

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923