首页 新闻 会员 周边

关于 C#多态问题请教

0
[已解决问题] 解决于 2018-07-10 17:01

请问为何在 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 中是允许这样做的。

        }
    }
}
D轩的主页 D轩 | 初学一级 | 园豆:190
提问于:2018-07-10 13:03
< >
分享
最佳答案
0

你用子类引用指向子类对象.就可以调用了.

至于你说用父类引用调用子类成员.如果某个语言允许这样做.

那说明这个语言语法上有BUG .

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2018-07-10 13:06

谢谢,是我记错了。😅

D轩 | 园豆:190 (初学一级) | 2018-07-10 17:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册