第一次写博

  大家好,我是一名学生,新来到博客园这个大家庭,日后还请多多关照。

  来到博客园,我想更多学习关于编程的知识。我主要学习C#,往UWP方向发展。所以整个博客更多的是关于微软的博文。

   因为每天都很忙,所以写博时间不能太长。

  尽可能的多代码。就这样。2015-12-08

 

  从去年就开始跟着传智播客的老赵,赵剑宇老师学习C#基础,尽管进程很慢但是坚持了下来。从今往后每天的学习进度都会在这里跟进,希望大家监督。

  我的近期目标就是将我暑期用App Studio做的“鲸鱼”进行一次大改版。就这样。

 

今天学到了多态的虚方法2015-12-08

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace P28多态之虚方法
{
    class Program
    {
        static void Main(string[] args)
        {
            //概念 让对象能够表现出多种状态(类型)
            //实现多态的三种手段:1、虚方法。2、抽象类。3、接口。
            
            Chinese cn1 = new Chinese("韩梅梅",18,'女');
            Chinese cn2 = new Chinese("李雷", 29, '男');
            Japanese j1 = new Japanese("树下君", 23);
            Japanese j2 = new Japanese("井边子", 24);
            Korea k1 = new Korea("金秀贤", 34);
            Korea k2 = new Korea("车贤惠", 43);
            American a1 = new American("科比布莱恩特", 34);
            American a2 = new American("奥尼尔", 45);
            Person[] prs = { cn1, cn2, j1, j2, k1, k2, a1, a2 };
            for (int i = 0; i < prs.Length; i++)
            {
                //if(prs[i] is Chinese)
                //{
                //    ((Chinese)prs[i]).SayHello();
                //}
                //else if(prs[i] is Japanese)
                //{
                //    ((Japanese)prs[i]).SayHello();
                //}
                //else if (prs[i] is Korea)
                //{
                //    ((Korea)prs[i]).SayHello();
                //}
                //else if (prs[i] is American)
                //{
                //    ((American)prs[i]).SayHello();
                //}
                prs[i].SayHello();
            }
            //首先将父类的方法标记为虚方法 使用关键字 virtual  可以被子类从新写一遍
            Console.ReadKey();
        }
    }
    public class Person
    {
        private string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        private int _age;
        public int Age
        {
            get
            { return _age; }
            set { _age = value; }
        }
        public Person(string name,int age)
        {
            this.Name = name;
            this.Age = age;
        }
        public virtual void SayHello()
        {
            Console.WriteLine("你好,我是人类");
        }
        
    }
    public class Chinese:Person
    {
        private char _gender;
        public char Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }
        public Chinese(string name,int age,char gender)
            :base(name,age)
        {
            this.Gender=gender;
        }
        public override void SayHello()
        {
            Console.WriteLine("我是中国人!我叫{0}",this.Name);
        }

    }
    public class Japanese:Person
    {
        public Japanese(string name,int age)
            :base(name,age)
        {

        }
        public override void SayHello()
        {
            Console.WriteLine("我是脚盆人我叫{0}",this.Name);
        }
    }
    public class Korea:Person
    {
        public Korea(string name,int age)
            :base(name,age)
        {

        }
        public override void SayHello()
        {
            Console.WriteLine("我是棒子,我叫{0}", this.Name);
        }
    }
    public class American:Person
    {
        public American(string name,int age)
            :base(name,age)
        {

        }
        public override void SayHello()
        {
            Console.WriteLine("我是美国佬,我叫{0}", this.Name);
        }
    }
}

  

 

posted @ 2015-12-08 21:26  老李拉面馆  阅读(334)  评论(0编辑  收藏  举报