苏飞论坛

标题: 苏菲论坛的高级会员-对苏菲论坛类的继承 [打印本页]

作者: wwwconsumer    时间: 2015-6-3 06:16
标题: 苏菲论坛的高级会员-对苏菲论坛类的继承
创立了苏菲论坛基类会员后,我们可以创立一个苏菲论坛的高级会员类,当然这个高级会员是有基础会员发展而来的,所以,我们不必重新再创立一个高级会员代码,直接从苏菲论坛会员代码中扩充就行了,这个就是编程中的继承思想。这个思想是学好C#编程语言的重要基础。我们现实世界中,有很多程序员设计了优秀的代码,我们直接拿来使用扩充就行了,就好像苏菲写的基类代码,就是让我们拿来运用的。好了,我们在上次的苏菲论坛会员代码中,扩充一个高级会员代码吧。为了方便大家查找,我还是先上苏菲论坛基类代码吧。
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SufeiClass
{
    class Sufei
    {
        //变量成员
        public string name;
        public int age;
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if (value <= 0)
                    age = 0;
                else
                    age = value;
            }
        }
   
            private int count = 0; //用来记录积分

            //函数成员
            //函数:登陆
            private void Hello()
            {
                Console.Write("嗨,我是{0},我今年{1}岁了。", name,age);
            }

            //函数:写文章
            public void WriteAticle()
            {
                Hello();
                Console.WriteLine("你的帖子已经被录入精华,谢谢发言");
            }

            //函数:奖励积分
            public void JiangLi()
            {
                count++;
                Hello();
                Console.WriteLine("我已经积攒{0}积分!", count);
            }
        }
    }


看到吗,普遍会员有姓名、年龄、积分等基本属性,可以登录、写文章、获得奖励等行为。
那么,我们再扩展一下高级会员类,有金钱、等级属性,可以投票、发短信、上传附件等行为。代码如下:

[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SufeiClass
{
    class SufeiSenior:Sufei //苏菲基类派生出高级会员
    {
        //私有成员
        private int moneyValue = 0;//高级会员有钱
        private int powerValue  = 0;//有钱任性,赋予等级
        //构造函数
        public SufeiSenior()
        {
            moneyValue++;
                Console.WriteLine("我的会员金钱为:{0}",moneyValue );
                powerValue++;
                Console.WriteLine("我的会员等级为:{0}",powerValue);
        }
        //属性:moneyValue
        public int MoneyValue
        {
            get
            {
                return moneyValue;
            }
            set
            {
                if (value <= 0)
                    moneyValue = 0;
                else
                    moneyValue = value;
            }
        }

        //属性:powerValue
        public int PowerValue
        {
            get
            {
                return powerValue;
            }
            set
            {
                if (value <= 0)
                    powerValue = 0;
                else
                    powerValue = value;
            }
        }
        public void vote()
        {
            Console.WriteLine("你好,你可以投票!");
        }
        public void send()
        {
            Console.WriteLine("你好,你可以发短信!");
        }
        public void upload()
        {
            Console.WriteLine("你好,你可以上传附件!");
        }
   
    }
}



好了,我们在主程序program.cs创造一个名叫wwwconsumer的高级会员对象,看看他有什么属性和动作吧。
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SufeiClass
{
    class Program
    {
        static void Main(string[] args)
        {//申明对象wwwconsumer
            SufeiSenior wwwconsumer = new SufeiSenior();
            //访问基类数据成员
            wwwconsumer.age = 40;
            wwwconsumer.name = "wwwconsumer";
         
            //访问基类成员
            wwwconsumer.WriteAticle();
            wwwconsumer.JiangLi();
            wwwconsumer.JiangLi();
            //访问派生类成员
            wwwconsumer.vote();
            wwwconsumer.send();
            wwwconsumer.upload();
           



        }
    }
}



运行一下,看看结果:
(, 下载次数: 190)