大家好,我是一名学生,新来到博客园这个大家庭,日后还请多多关照。
来到博客园,我想更多学习关于编程的知识。我主要学习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); } } }