社区
C#
帖子详情
为什么子类可以继承父类的private的成员,但是不可以直接访问?
崔鹏飞
2009-03-02 08:50:37
为什么子类可以继承父类的private的成员,但是不可以直接访问?
是基于什么考虑这样设计的?
...全文
1743
40
打赏
收藏
为什么子类可以继承父类的private的成员,但是不可以直接访问?
为什么子类可以继承父类的private的成员,但是不可以直接访问? 是基于什么考虑这样设计的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
40 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wh0206
2009-03-06
打赏
举报
回复
子类不可以继承父类的private的成员
在子类中 super.name 可以使用,是因为是super关键字。
super关键字:代表的是父类的一个实类。
this关键字:代表的是类本身的实类。
如下:
super.name 语法等效如下:
parent p = new p();
p.name;
我姓区不姓区
2009-03-02
打赏
举报
回复
[Quote=引用 1 楼 wuyi8808 的回复:]
子类不可以继承父类的private的成员
[/Quote]
可以继承的,但是不能直接访问而已
子类是会把父类所有的成员都继承的,包括私有成员
冷月孤峰
2009-03-02
打赏
举报
回复
private不可以继承的!
protected可以被子类继承!
liangpei2008
2009-03-02
打赏
举报
回复
protected
JaggerLee
2009-03-02
打赏
举报
回复
大大门,那个super是我乱写的....
而且整个就是错的..
...俺还是太菜了
hhxxcj
2009-03-02
打赏
举报
回复
九楼的解释挺有趣,还不错,意思也对
天乐
2009-03-02
打赏
举报
回复
super.name
这个是什么?
java的,类似c#中的base.name
Nathan_Loo
2009-03-02
打赏
举报
回复
[Quote=引用 2 楼 JaggerLee 的回复:]
你的意思是?
C# code
class parent
{
private string name;
}
class child : parent
{
public string getname()
{
return super.name;
//return name; //这样子就不行
}
}
[/Quote]
super.name
这个是什么?
人工智能算法
2009-03-02
打赏
举报
回复
私有的是不可以被继承的
楼主说的是当一个父类的公共方法被继承时为什么能访问父类中的私有属性吗?
其实是这样的 继承后其实这个方法并不是子类的 而是父类的,所以它理所当然能访问本类下的成员
楼主可能是把继承弄错了
class Parent
{
private string _name;
public string GetName()
{
return _name;
}
}
class Child : Parent
{
public string ParentName()
{
return GetName();//楼主不要以为这里是自己的GetName方法 其实是隐式调用了 base.GetName();
}
}
HsWong
2009-03-02
打赏
举报
回复
是的,你也可以用protected方法让派生类访问
崔鹏飞
2009-03-02
打赏
举报
回复
子类可以通过从父类继承来的公有方法来访问父类的私有字段
这样说对吗?
ctan
2009-03-02
打赏
举报
回复
[Quote=引用楼主 cuipengfei1 的帖子:]
为什么子类可以继承父类的private的成员,但是不可以直接访问?
是基于什么考虑这样设计的?
[/Quote]
这主要是为了防止在子类中修改父类中用private指定的成员值
sunshine_anycall
2009-03-02
打赏
举报
回复
[Quote=引用 9 楼 phoenix8343_cn 的回复:]
父亲有一个盒子,里面放着一个小秘密,可能是和母亲的情书,然而盒子是锁着的,钥匙只有父亲才有。
孩子知道父亲有一个盒子,也知道父亲去世以后盒子和那把钥匙就是自己的了,然而,现在,孩子没有钥匙,也就看不到里面的东西,除非父亲打开盒子给孩子看,或者父亲打开盒子自己把情书念给孩子听。
[/Quote]
up
很形象!
iGouzy
2009-03-02
打赏
举报
回复
PS:子类可以继承父类的所有成员
iGouzy
2009-03-02
打赏
举报
回复
父亲有一个盒子,里面放着一个小秘密,可能是和母亲的情书,然而盒子是锁着的,钥匙只有父亲才有。
孩子知道父亲有一个盒子,也知道父亲去世以后盒子和那把钥匙就是自己的了,然而,现在,孩子没有钥匙,也就看不到里面的东西,除非父亲打开盒子给孩子看,或者父亲打开盒子自己把情书念给孩子听。
SealedLove
2009-03-02
打赏
举报
回复
不可以继承
使用protected类和类的派生类可以访问
pcjbird
2009-03-02
打赏
举报
回复
[Quote=引用 2 楼 JaggerLee 的回复:]
你的意思是?
C# code
class parent
{
private string name;
}
class child : parent
{
public string getname()
{
return super.name;
//return name; //这样子就不行
}
}
[/Quote]
super????? java~~~~~~~~~
delphi_911
2009-03-02
打赏
举报
回复
子类不可以继承父类的private成员。
但可以以private的方式继承父类,如:
class parent
{
private string name;
}
class child : private parent
{
...
}
zgke
2009-03-02
打赏
举报
回复
不可以继承....
你可以使用 protected 保护类成员
Dobzhansky
2009-03-02
打赏
举报
回复
空间是要占领的, 只是看不到, 一片灰色地带
加载更多回复(20)
微服务系列第七季-Java面向对象中的
继承
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的问题。微服务系列课程是以Java语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简的方式,带领入门的朋友们快速上手微服务开发。全部案例源码分享给学习的朋友,案例采用敏捷开发管理模式,让朋友们在每一个阶段,有着游戏过关一样的学习体验。 第七季主要是给大家介绍一下Java面向对象中的
继承
,包括:
继承
的概念、为什么要
继承
、
继承
的类型及特性、extends关键字、final关键字、implements关键字、super和this关键字、
子类
中如何调用
父类
中的有参、无参构造方法。
子类
继承
父类
private
成员
子类
继承
父类
private
成员
子类
继承
父类
时,
父类
中的
private
修饰的
成员
也能被
继承
,但是不能
直接
使用。
子类
可以
继承
父类
的所有
成员
吗?
答案是肯定的。
子类
可以
继承
父类
的所有
成员
,包括被
private
修饰的
成员
,
子类
只是无法
访问
、不能调用被
private
修饰的方法罢了。 我们还是要分清
继承
和
访问
权限的问题。
子类
可以
继承
父类
的哪些
成员
?所有
成员
吗?
首先,
子类
可以
继承
父类
所有的
成员
。 1.对于特殊的
private
成员
。
子类
仍然可以
继承
,但是
子类
此时没有使用权,不能
直接
访问
,这时候若需要
访问
,只能调用
父类
的getter,setter方法来
访问
与赋值。 ...
java
子类
能否
继承
父类
private
成员
子类
可以
继承
父类
所有
成员
,包括
private
修饰的
成员
,但是由于有
private
修饰,虽然被
继承
,但无法被
子类
直接
访问
。
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章