C# 基础: new 和 overrider 的区别

本文通过一个C#实例介绍了如何使用抽象类和派生类来实现多态。具体展示了基类(抽象类)与两个派生类(class1和class2)之间的关系及方法覆盖和隐藏的应用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            //contact ct = new contact(); //抽象类
            class1 ct1 = new class1(); 
            class2 ct2 = new class2();

            contact ct3 = new class1();
            contact ct4 = new class2();
            ct1.prinf();  
            ct2.prinf();
            ct3.prinf();
            ct4.prinf(); 
            

            //int i = System.Console.Read();
            //string str = System.Console.ReadLine();
            //System.Console.Read();
            
            System.Console.ReadLine();
        }

        abstract public class contact  
        {  
            public virtual void prinf()    //关键字virtual  
            {  
                Console.WriteLine("这是虚方法");  
            }  
        
        }  
        public class class1 : contact  
        {  
            public override void prinf()   //关键字override  
            {  
                Console.WriteLine("这是新的方法");  
            }  
        
        }  
        
        public class class2 : contact  
        {  
            public new void prinf()     //关键字new  
            {  
                Console.WriteLine("这是另一个新的方法");  
            }  
        
        }  

    }
}

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值