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();这种形式还有什么意义或者说这种形式还有别的什么用处??最好举个例子说明一下。谢谢啦!! 展开
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();这种形式还有什么意义或者说这种形式还有别的什么用处??最好举个例子说明一下。谢谢啦!! 展开
3个回答
展开全部
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
};
希望能解决您的问题。
只是注意说法:在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
};
希望能解决您的问题。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的写法,没什么区别吧。
如果重写(override)父类的方法;多态上会用到;
参考地址:http://zhidao.baidu.com/link?url=VOmhaayQ3ZjT9z91mvNwxAfI3ICQd2z1q_boIty_rOxUUouAiDPgnSHBmttgHHDJt9QY5_VulDNe3g5NlTi2Vq
如果重写(override)父类的方法;多态上会用到;
参考地址:http://zhidao.baidu.com/link?url=VOmhaayQ3ZjT9z91mvNwxAfI3ICQd2z1q_boIty_rOxUUouAiDPgnSHBmttgHHDJt9QY5_VulDNe3g5NlTi2Vq
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种写法可以不同子类调用公用的父类方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询