• 第一次写博


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

      来到博客园,我想更多学习关于编程的知识。我主要学习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);
            }
        }
    }
    

      

  • 相关阅读:
    页面 分页加载图文 微服务架构
    二阶段 三阶段 提交 Paxos
    SignatureDoesNotMatch REST接口 在任何时间、任何地点、任何互联网设备上 在Header中包含签名
    tmp
    base64 hash sha
    对云资源服务商资源读写的架构思考:前端代码走token
    微信小程序存放视频文件到阿里云用到算法js脚本文件
    REST RPC HTTP vs 高性能二进制协议 序列化和通信协议
    角色 演员
    服务端签名后直传 服务端签名直传并设置上传回调
  • 原文地址:https://www.cnblogs.com/-SANG/p/5031086.html
Copyright © 2020-2023  润新知