| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1963 人关注过本帖
标题:class1 xxx=new class2();问题!
只看楼主 加入收藏
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
结帖率:86.96%
收藏
已结贴  问题点数:20 回复次数:10 
class1 xxx=new class2();问题!
不知道该怎样理解?
一般情况都是class1 xxx=new class1();
请问在这里new class2是什么意思???
谢谢各位......
搜索更多相关主题的帖子: new 
2010-10-21 14:53
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
new class2()就是生成一个class2的实例。
如果class2继承自class1那么这么做没有什么问题,而且这种方法很有用,在设计模式中大量使用。

重剑无锋,大巧不工
2010-10-21 16:41
lach
Rank: 2
等 级:论坛游民
帖 子:26
专家分:31
注 册:2010-8-30
收藏
得分:0 
类的多态性
2010-10-21 18:47
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
class1 xxx=new class1();
new class1() 用于表示在堆中创建新对象  在c#中赋予的默认值取决于字段是对值类型的引用,还是对引用类型的引用。
如果未赋值引用类型(例如类类型)在默认状态下为空 例如class1 xxx;
所谓类的实例化就是在内存中分配一块地 址

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-22 09:02
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
收藏
得分:0 
回复 2楼 beyondyf
class2继承class1
class1 xxx=new class2(),创建的是class1的实例 !
写成new class1()就成了!!!为什么要写成new class2();
 谢谢.
2010-10-22 09:28
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:20 
这里创建的还是class2的实例,不是class1的。但是以class1的模式使用class2这个实例。
呵呵,听起来有点抽象吧。举个简单的例子你理解一下。
using System;
using System.Collections.Generic;
using System.Text;

namespace virtualtest
{
    class Food
    {
        public virtual void Cook()
        {
            Console.WriteLine("Nothing to do.");
        }
        public virtual void WhatThis()
        {
            Console.WriteLine("It's nothing.");
        }
    }
    class Rice : Food
    {
        public override void Cook()
        {
            Console.WriteLine("Rice is cooked.");
        }
        public override void WhatThis()
        {
            Console.WriteLine("It's Rice");
        }
    }
    class Bread : Food
    {
        public override void Cook()
        {
            Console.WriteLine("Bread is cooked.");
        }
        public override void WhatThis()
        {
            Console.WriteLine("It's Bread");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Food food;
            for (int i = 0; i < 3; i++)
            {
                switch (i)
                {
                    case 0: food = new Rice(); break;
                    case 1: food = new Bread(); break;
                    default: food = new Food(); break;
                }
                food.WhatThis();
                food.Cook();
                Console.WriteLine();
            }
        }
    }
}

重剑无锋,大巧不工
2010-10-22 09:52
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
收藏
得分:0 
回复 6楼 beyondyf
   完全明白,太感谢你了......呵呵...
2010-10-22 10:17
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 7楼 one_june
不必客气,帮上忙就好,还要感谢你给的专家分呢有机会我们还可以再交流

重剑无锋,大巧不工
2010-10-22 10:23
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
收藏
得分:0 
回复 8楼 beyondyf
  你是beyond 的歌迷...
2010-10-22 12:19
moridiansha
Rank: 6Rank: 6
来 自:承德
等 级:侠之大者
威 望:4
帖 子:254
专家分:417
注 册:2009-10-21
收藏
得分:0 
回复 6楼 beyondyf
不错,一目了然

www.qysy.tk
2010-10-24 17:08
快速回复:class1 xxx=new class2();问题!
数据加载中...
 
   



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

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