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

浙公网安备 33010602011771号