A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴承烨 中级黑马   /  2013-6-17 18:27  /  1163 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

6 个回复

倒序浏览
没看过..等高手解答
回复 使用道具 举报
你这个就是声明了一个Person类、一个Son类、一个Son1类
Person[] person;不看后面的内容
这就是声明了一个Person类的数组
你不能说person是什么类型
它就是一个数组类型
就好比int[] nums = new int[] nums[n];
你不能说nums是int类型,它就是单独的一中类型,数组类型,只是里面存放的是int类型的数据
回复 使用道具 举报
person[0]是person类型的。如果你这个能够成功运行,那么son跟son1应该是person的子类
自定义的类一般都是引用类型,当你声明一个变量并赋值时,相当于创建了一个对象和一个变量,并使该变量指向对象。而实际上该对象克同时被多个变量所指向
回复 使用道具 举报
Person[0] 里面的实例对象肯定是 Sun 它进数组后不会改变它本身的数据类型 按照里氏替换原则 那样做一般是为了实现多态
你可以这样试一下  Console.WriteLine(Person.GetType().ToString());  //GetType是获取本身的数据类型
如果你想把它在赋值类子类 可以这样写   Sun sunxxx = Person[0]  as Sun;  //as是尝试类型转换
回复 使用道具 举报
person[0]肯定是一个Person类型 就和定义数组一样的 如:int []a=new int[9]; a[0]中的数肯定是一个int类型的啊。
sun 和sun1还是 Sun类型
person[0]和person[1]可以转换为Sun类型的 Sun s=(Sun)person[0];
在没有发生转换时用sun和sun1可以调用父类和子类的字段方法,person[0]只能调用父类的字段方法。
eg:
namespace 测试1
{
    class Program
    {
        static void Main(string[] args)
        {
            Sun sun = new Sun("吴沉桦","女","女人",100);
            Sun sun1 = new Sun("小明", "男", "男人", 180);
            Person[] person = {sun,sun1 };
            Console.WriteLine(person[0].name);
            Console.WriteLine(sun.sex);
            Console.ReadKey();
        }
    }
    public class Sun:Person
    {
        public string gender = "";
        public int height = 0;
        public Sun(string Name,string Sex,string Gender,int Height)
            :base(Name,Sex)
        {
            this.gender = Gender;
            this.height = Height;
        }
    }

    public class Person
    {
       public Person(string name,string sex)
       {
          this.name=name;
           this.sex=sex;
       }
      public string name = "";

       //public string Name
       //{
       //    get { return name; }
       //    set { name = value; }
       //}
      public string sex = "";

       //public string Sex
       //{
       //    get { return sex; }
       //    set { sex = value; }
       //}     
    }
}

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马