C#中的多重继承

在C#语言中是没有多重继承功能的,如果我们在项目应用需要用多重继承来实现一些功能的时候,也还是可以做到的,虽然不是太方便。在C#语言中,类是不能多重继承的,但是接口可以多重继承。因此在此实现多继承的原理就是,为每个类建立具有相同方法名的接口,并实现这些接口,然后在子类中继承这些接口,并将实现的类作为子类的字段。

开发环境:VS2005   .NET2.0

项目下载地址:MuiltExtends.zip

///BookBase.cs
using System;

namespace XFish.Demo
{
    /// <summary>
    /// 书的基类
    /// </summary>
    public abstract class BookBase
    {
        #region 类初始化
        public BookBase()
        {
        }
        #endregion
    }
}
///IAuthor.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace XFish.Demo
{
    /// <summary>
    /// 作者类的接口
    /// </summary>
    public interface IAuthor
    {
        string GetName();
        void SetName(string name);
        void SetEmail(string email);
        string GetEmail();
    }
}
///Author.cs
using System;

namespace XFish.Demo
{
    /// <summary>
    /// 作者
    /// </summary>
    public class Author : BookBase,IAuthor
    {
        #region 类内部变量
        private string _Name;
        private string _Email;
        #endregion

        #region 类初始化
        public Author()
        {
            _Name = "虞晓杰";
            _Email = "fishyxj@sina.com";
        }
        #endregion

        #region 类方法
        /// <summary>
        /// 显示作者的姓名
        /// </summary>
        public string GetName()
        {
            return _Name;
        }
        /// <summary>
        /// 设置作者的姓名
        /// </summary>
        /// <param name="name">作者姓名</param>
        public void SetName(string name)
        {
            _Name = name;
        }
        /// <summary>
        /// 设置Email
        /// </summary>
        /// <param name="email">Email地址</param>
        public void SetEmail(string email)
        {
            _Email = email;
        }
        /// <summary>
        /// 获取Email
        /// </summary>
        /// <returns></returns>
        public string GetEmail()
        {
            return _Email;
        }
        #endregion
    }
   
}
///IContents.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace XFish.Demo
{
    /// <summary>
    /// 内容的接口
    /// </summary>
    public interface IContents
    {
        string GetChapter(int chapter);
    }
}
///Contents.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace XFish.Demo
{
    /// <summary>
    /// 内容
    /// </summary>
    public class Contents:BookBase,IContents
    {
        #region 类内部变量
        private List<string> _Chapters; 
        #endregion

        #region 类初始化
        public Contents()
        {
            _Chapters = new List<string>();
            _Chapters.Add("第一章 态度决定一切");
            _Chapters.Add("第二章 学无止境");
            _Chapters.Add("第三章 交付用户想要的软件");
        }
        #endregion

        #region 类方法
        /// <summary>
        /// 获取章节
        /// </summary>
        /// <param name="chapter">章节序号</param>
        /// <returns>章节内容</returns>
        public string GetChapter(int chapter)
        {
            chapter -= 1;
            if (0 <= chapter && chapter < _Chapters.Count)
                return _Chapters[chapter];
            return string.Empty;
        }
        #endregion
    }
}

  

  

转载于:https://www.cnblogs.com/fishyxj/archive/2011/09/27/2193241.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值