c# 抽象类

参考文章:https://blog.csdn.net/lizhenxiqnmlgb/article/details/82346478

    /// <summary>
    /// 抽象类详解:https://blog.csdn.net/lizhenxiqnmlgb/article/details/82346478
    /// 抽象类中的抽象方法、抽象属性都要在派生类中override
    /// 不能有抽象字段、不能实例化、带有abstract的都必须是公共的、抽象类中抽象成员必须在派生类中实现(如果派生类是抽象类则不用实现)
    /// 应用场景:如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧(简单理解:如果这个类目的就是让别人继承的,并且他有一些需要的公共属性或方法,那么就可以设置为抽象类)
    /// </summary>
    public abstract class Fruit
    {
        /// <summary>
        /// 生产商
        /// </summary>
        public string Vendor;

        public abstract double Price { get; }

        public abstract void get();//抽象方法不能有方法体,需要在派生类中实现
    }

///接口1

public interface ihaha
    {
        int get2();
    }

///接口2

    public interface ihaha22 : ihaha
    {
        int get3();
    }

    /// <summary>
    /// 抽象类只能继承一个,而接口可以继承多个
    /// </summary>
    public class Apple : Fruit, ihaha, ihaha22
    {
        public override double Price
        {
            get
            {
                if (Vendor == "红富士")
                {
                    return 100;
                }
                else
                {
                    return 10;
                }
            }
        }

        public override void get()
        {
            Console.Write("我在北方和南方都可以生长,我的生产商是:" + Vendor + "我的价格是" + Price);
        }

        public int get2()
        {
            throw new NotImplementedException();
        }

        public int get3()
        {
            throw new NotImplementedException();
        }

    }

调用:
            Fruit fruit = new Apple();
            fruit.Vendor = "红富士";
            fruit.get();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值