.NET 面向对象 之 继承,抽象类

/// <summary>
/// 抽象类:就是一个类,里面可以包含一切类的东西
/// </summary>
public abstract class Phone
{
    public long Id { get; set; }
 
    protected string Brand;
 
    /// <summary>
    /// 方法的多态,抽象方法,不同的子类进行不同的实现
    /// </summary>
    /// <returns></returns>
    public abstract string System();
 
    public void Call()
    {
        Console.WriteLine(
        $"use {this.GetType().Name} {this.Brand} {this.System()} Call");
    }
 
    public void Photo()
    {
        Console.WriteLine(
        $"use {this.GetType().Name} {this.Brand} {this.System()} Photo");
    }
}
 
/// <summary>
/// 接口:不是一个类,不能包含具体实现,不能带访问修饰符
/// 通过接口,实现了对象与行为的分离,
/// 这样我们无须担心因为继承不当而使 某类 有 不该有的方法,保护了系统的完整性。
/// </summary>
public interface IExtend
{
    /// <summary>
    /// 属性
    /// </summary>
    string Remark { get; set; }
 
    /// <summary>
    /// 方法
    /// </summary>
    void FingerprintPayment();
 
    /// <summary>
    /// 事件
    /// </summary>
    event Action ea;
}
 
public class IPhone : Phone, IExtend
{
    public IPhone() : base()
    {
        base.Brand = "Apple";
    }
 
    public string Remark { get; set; }
 
    public event Action ea;
 
    public void FingerprintPayment()
    {
        Console.WriteLine("指纹支付");
    }
 
    public override string System()
    {
        return "IOS";
    }
}
 
public class Redmi : Phone
{
    public Redmi()
    {
        base.Brand = "Redmi";
    }
 
    public override string System()
    {
        return "Android";
    }
}
 
 
Phone iphone = new IPhone();
iphone.Call();
iphone.Photo();
 
 
Phone redmi = new Redmi();
iphone.Call();
iphone.Photo();
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值