Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
老师, 用子类构造的对象和将其赋值给父类声明的对象有声明区别
走向光明发起了问答2019-08-05
4
回复
283
浏览

    class Program
    {
        class A:B
        {

            public  void Method1()
            {
                Console.WriteLine("子类的方法");
            }
        }
        static void Main(string[] args)
        {

            A a = new A();
          //  B b = a;
            B b = new B();
            a.Method1();
            b.Method1();
        }
    }
    class B
    {
        public  virtual void Method1()
        {
            Console.WriteLine("父类的方法");
        }

    }

 

在这个例子中,  B b = a; 和 B b = new B();这两个表达式声明的b对象, 所调用的结果一样, 那他们有声明区别, 就是将子类构造的对象赋值给父类生命的对象, 和用父类直接构造对象, 有声明区别?

所有回复
  • 老师_Trigger 2019-08-05

    同学你好,可以参考一下,这个是要在后续学习中慢慢体会总结的:

    https://zhidao.baidu.com/question/122056067.html

    https://zhidao.baidu.com/question/352807717.html

    https://www.cnblogs.com/heyu/articles/3427191.html

    https://blog.csdn.net/noricky/article/details/80051354

    https://bbs.csdn.net/topics/390437776

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 走向光明 2019-08-05

    我大概有点懂了, 这样就是便于用父类的对象调用多个子类重写方法吗?

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 老师_Trigger 2019-08-06

    不仅仅是这个功能哦,还有很多其他原因,资料里都有,总结需要我们自己来做。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 走向光明 2019-08-06

    好的,谢谢老师. 

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!