| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 603 人关注过本帖, 1 人收藏
标题:多态和和继承
取消只看楼主 加入收藏
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
结帖率:78.99%
收藏(1)
已结贴  问题点数:1 回复次数:1 
多态和和继承
大家好,请问一下~~~~~~
代码:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication10
{
    class MyClass1
    {
        private int x = 0;
        private int y = 0;

        public int X
        {
            set { x = value; }
            get { return x; }
        }
        public int Y
        {
            set { y = value; }
            get { return y; }
        }

        public virtual int add()
        {
            return X + Y;
        }
    }

    class MyClass2:MyClass1
    {
        public override int add()
        {
            int x = 5;
            int y = 7;
            return x + y;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyClass2 myclass2 = new MyClass2();
            MyClass1 myclass1 = (MyClass1)myclass2; //<1>使用派生类MyClass2的对象实例化基类MyClass1的对象
            MyClass1 myclass1 = new MyClass1();     //<2>使用MyClass1实例化
            myclass1.X = 3;
            myclass1.Y = 5;
            Console.WriteLine(myclass2.add());
            Console.WriteLine(myclass1.add());
            Console.ReadLine();
        }
    }
}

结果(<1>和<2>分别有两种情况):
<1>——12 , 12
<2>——12 , 8

问题:
为什么会有两种不同的结果呢????????请帮帮忙,谢谢~~~~~~~~~~~~
可以详细解释一下第一种情况吗???这种用基类来实例化比较少见~~~~~~~~
搜索更多相关主题的帖子: 多态 继承 
2009-10-25 00:11
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
收藏
得分:0 

我还是不怎么动啊!
可不可以在解释一下啊。
MyClass1 myclass1 = (MyClass1)myclass2;
我当初想是可能是使用派生类对象myclass2将MyClass1转换为基类。
但是似乎有点不对劲啊
~~~~~~~~~~~~~~~~~~~~
2009-10-30 17:13
快速回复:多态和和继承
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026544 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved