惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
J
Java Code Geeks
G
Google Developers Blog
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
罗磊的独立博客
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 天寒

oracle 11gr2 2.04 em 更改 hostname 后无需重建资料库的方法 emca 更改监听端口 centos 安装vmware 9.02 报 Failed to load module "pk-gtk-module" "canberra-gtk-module" can not update ICEAuthority file mint或则ubuntu IIS使用ASP.NET State Service存储Session IIS 静态文件 如doc附件的安全控制 16个出色的开源软件 教程:创建简单的 ETL 包 SQL Server 2005 Beta 2 Transact-SQL 增强功能 深度看点 Linq查询与性能解析 EF v2 and Data Access Architecture Best Practices ASP.NET Dynamic Data Entity Framework Resources [转]PDC:Anders谈C# 4.0:新功能和展望 [转]从C# 2.0新特性到C# 3.5新特性 [转]探寻C# 3.5新特性 Eclipse反编译插件: Jodeclipse与JadClipse iis 6 tuning [转载]OllyDBG 入门系列(一)-认识OllyDBG
C# new and override
天寒 · 2009-07-06 · via 博客园 - 天寒

/// 测试点
/// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)

/// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)

public  class baseClass
    
{

        
public baseClass()
        
{
            MethodOfOverride();
            MethodOfNew();
 
        }


        
public virtual void MethodOfOverride()
        
{
            Console.WriteLine(
"baseClass:MethodOfOverride");
        }

        
public void MethodOfNew()
        
{
            Console.WriteLine(
"baseClass:MethodOfNew");
        }


        

    }


    
public class derivedClass : baseClass
    
{
        
public int value;
        
public derivedClass()
        
{
            value 
= 2;
        }


        
public override void MethodOfOverride()
        
{

            Console.WriteLine(
"derivedClass:MethodOfOverride value=" + value.ToString());
        }


        
public new void MethodOfNew()
        
{
            Console.WriteLine(
"derivedClass:MethodOfNew value=" + value.ToString());
        }


    }



    
/// <summary>
    
/// 测试点
    
/// (1) Override 与 new 的区别 (new后方法在父类与子类中各自存在,Override覆盖父类中函数)
    
/// (2) 子类 构造函数 的执行时间 (先执行父类构造函数,再执行子类构造函数)
    
/// </summary>

    class Program
    
{
        
static void Main(string[] args)
        
{
            Console.WriteLine(
"*********baseClass tempClassA = new baseClass()*********");
            Console.WriteLine(
"----------------初始化输出----------------------");
            baseClass tempClassA 
= new baseClass();
            Console.WriteLine(
"----------------下面方法输出------------------------");
            tempClassA.MethodOfOverride();
            tempClassA.MethodOfNew();

            Console.WriteLine(
"*********derivedClass tempClassB = new derivedClass()*********");
            Console.WriteLine(
"----------------下面初始化输出----------------------");
            derivedClass tempClassB 
= new derivedClass();
            Console.WriteLine(
"----------------下面方法输出------------------------");
            tempClassB.MethodOfOverride();
            tempClassB.MethodOfNew();

            Console.WriteLine(
"*********baseClass tempClassC = new derivedClass()*********");
            Console.WriteLine(
"----------------下面初始化输出----------------------");
            baseClass tempClassC 
= new derivedClass();
            Console.WriteLine(
"----------------下面方法输出------------------------");
            tempClassC.MethodOfOverride();
            tempClassC.MethodOfNew();

            Console.Read();

            
//
            /* 输出结果
             
             *********baseClass tempClassA = new baseClass()*********
             ----------------初始化输出----------------------
             baseClass:MethodOfOverride
             baseClass:MethodOfNew
             ----------------下面方法输出------------------------
             baseClass:MethodOfOverride
             baseClass:MethodOfNew
             
             
             *********derivedClass tempClassB = new derivedClass()*********
             ----------------初始化输出----------------------
             derivedClass:MethodOfOverride value=0
             baseClass:MethodOfNew
             ----------------下面方法输出------------------------
             derivedClass:MethodOfOverride value=2
             derivedClass:MethodOfNew value=2
             
             
             *********baseClass tempClassC = new derivedClass()********* 
             ----------------初始化输出----------------------
             derivedClass:MethodOfOverride value=0
             baseClass:MethodOfNew
             ----------------下面方法输出------------------------
             derivedClass:MethodOfOverride value=2
             baseClass:MethodOfNew
             
             
*/


        }

    }