关于子类实例化父类的使用,当父类类型变量指向子类实例的引用。调用的是子类还是父类的方法、字段?如
class A
{
//.....
}
class B:A
{
//....
}A a1=new B(); //当子类与父类出现同名字段的时候,调用的子类的字段还是父类的,当同名的字段为不同的修饰的时候(如private、public等)又是什么情况呢?
当子类和父类出现同名方法的时候,调用的是子类的方法还是父类的方法?我在VS上试验过 一次 结果是当子类和父类有同名字段且都未public时,调用父类的字段,子类的方法。这是为什么呢? 搞不明白各位高手能不能简单详细的讲明白个中原理呢?我 疑惑两天了
class A
{
//.....
}
class B:A
{
//....
}A a1=new B(); //当子类与父类出现同名字段的时候,调用的子类的字段还是父类的,当同名的字段为不同的修饰的时候(如private、public等)又是什么情况呢?
当子类和父类出现同名方法的时候,调用的是子类的方法还是父类的方法?我在VS上试验过 一次 结果是当子类和父类有同名字段且都未public时,调用父类的字段,子类的方法。这是为什么呢? 搞不明白各位高手能不能简单详细的讲明白个中原理呢?我 疑惑两天了
还是不太明白,能结合具体例子说明下吗?
比如我问题的事例
A a1=new B();类A和类B都有相同的字段和方法呢,是不是只与类型有关 ,调用A类中的方法和字段?
用这样 A a1=new B();
怎么调用?
我在VS上自己不断的试验 呵呵 谢谢 stonespace