类的继承与方法的重写,virtual与abstract 的区别

abstract 类,即抽象类不能实例化,只能由子类继承

abstract 方法、属性 必须被子类实现

virtual 方法 可以在子类重写,也可以不重写

virtual方法可以被子类重写,子类继承父类后,如果子类方法没有重写父类方法则调用父类,子类有重写则调用重写方法,不管调用发生在子类还是父类

        
    
        public void text() {
    //DataAnalyze a= new DataAnalyze(); 抽象方法不能被实例化
            ETJX etj = new ETJX();
            etj.Analyze();//调用父类方法,再调用子类重写的方法SaveToDB
            DataAnalyze baseAnalyze = etj;
            baseAnalyze.Analyze();
            baseAnalyze = new ECMECC();
            baseAnalyze.Analyze();
        }

        public abstract class DataAnalyze
        {
            public DataAnalyze()
            {
                Name = "DataAnalyze";
            }
            public abstract string Name { get; set; }

            public virtual void Analyze()
            {
                Console.WriteLine(Name);

                SaveToDB();
            }

            public virtual void SaveToDB()
            {
                Console.WriteLine("DataAnalyze保存到数据库");
            }
        }
        public class ETJX : DataAnalyze
        {
            public ETJX()
            {
                Name = "ETJX";
            }
            public override string Name { get; set; }

            public override void SaveToDB()
            {
                Console.WriteLine("ETJX保存到数据库");
            }
        }
        public class ECMECC : DataAnalyze
        {
            public ECMECC()
            {
        
            }
            public override string Name { get; set; }
            //public override void Analyze()
            //{
            //    Console.WriteLine(Name);
            //}
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值