C#中的继承问题

父类:publicclassparentClass{publicvoidSayHi(){Console.WriteLine("父类Hi");}}子类:publicclas... 父类:
public class parentClass
{
public void SayHi()
{
Console.WriteLine("父类Hi");
}
}
子类:
public class SonClass:parentClass
{
public void SayHello()
{
Console.WriteLine("子类SayHello");
}
}
我这样实例化
parentClass pc1 = new SonClass();
为什么pc1不能调用子类中方法?
然后我这样实例化
parentClass pc2 = new SonClass();
SonClass sc2 = (SonClass)pc2;为什么这样才可以调用子类中方法?如果这样的话还不如直接这样实例化SonClass sc1 = new SonClass();那么parentClass pc2 = new SonClass();这种形式还有什么意义或者说这种形式还有别的什么用处??最好举个例子说明一下。谢谢啦!!
展开
 我来答
星星爱弘基7珄
2014-08-06 · 超过62用户采纳过TA的回答
知道答主
回答量:192
采纳率:0%
帮助的人:59万
展开全部
C++/java/C#中关于继承的权限没有区别,你其实理解了
只是注意说法:在P内能访问,和P的对象能访问,如果一个方法在P内是私有的,在P内是能访问的,P的对象是不能访问的,所以42选c

class A
{
public:
int x;
protected:
int y;
private:
int z;
};

class B : public A
{
// x is public
// y is protected
// z is not accessible from B
};

class C : protected A
{
// x is protected
// y is protected
// z is not accessible from C
};

class D : private A
{
// x is private
// y is private
// z is not accessible from D
};
希望能解决您的问题。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
樱桃何晓云
推荐于2016-08-22 · TA获得超过151个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:190万
展开全部
上面的写法,没什么区别吧。
如果重写(override)父类的方法;多态上会用到;

参考地址:http://zhidao.baidu.com/link?url=VOmhaayQ3ZjT9z91mvNwxAfI3ICQd2z1q_boIty_rOxUUouAiDPgnSHBmttgHHDJt9QY5_VulDNe3g5NlTi2Vq
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jarhf
2014-08-06 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1034万
展开全部
这种写法可以不同子类调用公用的父类方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式