java 继承 子类继承父类private没有父类的private 属性和 方法

继承:子类可以继承父类的私有成员变量吗?? -
- ITeye博客
博客分类:
1、关于私有成员变量
无论父类中的成员变量是私有的、共有的、还是其它类型的,子类都会拥有父类中的这些成员变量。但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protected、public方法(如getter、setter方法)来访问。
2、关于静态成员变量
无论父类中的成员变量是静态的、还是非静态的,子类都会拥有父类中的这些成员变量。
3、关于被子类覆盖的成员变量
无论父类中的成员变量是否被子类覆盖,子类都会拥有父类中的这些成员变量。
浏览 16101
浏览: 64502 次温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
创建子类对象的时候开辟一片空间
,在空间中也会有父类对象的空间
虽然子类对象没有name属性,父类肯定会提供给我们公开的public的方法,让我们去访问私有属性。那么public的方法就可以被子类继承了,子类通过pubic的get和set方法其实操作的是父类的属性。
属性和方法都相当于一个物品,虽然是属于父类,但同时也在我子类的空间里面
,所以我子类也可以访问。
但如果给父类的属性加一个private修饰的话
,子类就不能访问父类的属性,只能通过父类的公开方法来调用。
?没继承& 构造函数& 传的参数给谁了。。。。。& 不是有一个super()吗 。。构造函数为父类的属性赋值了
虽然子类不继承父类中的私有成员,但是在父类中生命的这些私有成员仍然是子类类型对象的一部分。因为在实例化对象 的时候,只初始化在当前类中所声明的属性明显是不足够的,还需要初始化其父类中所有声明的属性。
所以,我们可以说:子类不能从父类继承私有成员,但是子类的对象是包括子类所不能从父类中继承的私有成员的。
实例化子类的时候不会产生父类对象,只是用了父类的构造函数而已,并不是用到构造函数就会产生对象,构造函数只是起对象初始化作用的,而不是起产生对象作用的。
继承是:父类中的成员被继承到子类对象中,用指向子类对象的父类引用调用父类成员,只不过是从 子类对象内存空间中找到那个被继承来的父类成员。
阅读(1230)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'专题讨论
子类能不能继承父类的私有属性:',
blogAbstract:'网上为这事争论的喋喋不休,2种声音各有理由一种声音:能继承,但是不能直接访问,只能通过get和set.通过以下资料\n\n\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:4,
publishTime:0,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}推荐文章 TOP10子类为什么不可以访问父类的private属性
一个类可以通过getter或者setter方法让其他类来访问自己的private属性但是为什么子类继承了父类以后就不能用getter或者setter 来访问他的private属性的呢?如果子类想要想要访问父类的private属性该怎么办?
我试过用get和set方法,但是会报错,是不是用的方式不对
用定义子类的对象,然后用setter给对应父类的private属性进行赋值
定义个父类的对象 在调用set get 方法就OK了
写下你的评论...
写下你的评论...
crr是子类对象。
我是这么想的
子类继承了父类的get 和 set 方法,这样要是我定义了子类的对象,就能调用父类的方法,这样就能给父类的对象赋值
但是报错不知道问题出在哪里
你继承了你爸爸的公司,你把自己的秘密还是只是他自己知道。 必学通过他来获取。
写下你的评论...
就是说父类中调用了private属性的的方法,在子类里面也不能用,只能用父类的其他的public类型方法吗?
不是的,子类调用,只能更改子类的实例对象的属性,总之,记住父类的私有属性你无法访问,如果你用父类实例化一个子类对象,子类调用父类public方法是可以的,更改的也只是子类的实例化对象。
写下你的评论...
写下你的评论...
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2

我要回帖

更多关于 子类 父类 private 的文章

 

随机推荐