请问为何在 C#中将类型声明为父类类型,然后实例化为子类。但此对象不能像 Java 一样访问到子类中的相关属性?
using System; namespace Inherit.Properties { class A { public string a = "A"; } class B : A { public string b = "B"; } public class EmptyClass { public static void Main(string[] args) { A a = new B(); Console.WriteLine(a.a); //Console.WriteLine(a.b); 这将报错,但在 Java 中是允许这样做的。 } } }
你用子类引用指向子类对象.就可以调用了.
至于你说用父类引用调用子类成员.如果某个语言允许这样做.
那说明这个语言语法上有BUG .
谢谢,是我记错了。😅