设计模式之面向对象基础(二)
t.Shout());
}
class Cat : Animal
{
public Cat()
: base()
{ }
public Cat(string name)
: base(name)
{ }
public override string Shout()
{
string result = "";
for (int i = 0; i < shoutNum; i++)
result += "喵";
return "我的名字叫" + name + " " + result;
}
}
private void button2_Click(object sender, EventArgs e)
{
Dog dog = new Dog("dandan");
dog.ShoutNum = 5;
MessageBox.Show(dog.Shout());
}
class Dog : Animal
{
public Dog()
: base()
{ }
public Dog(string name)
: base(name)
{ }
public override string Shout()
{
string result = "";
for (int i = 0; i < shoutNum; i++)
result += "汪";
return "我的名字叫" + name + " " + result;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private Animal[] arrayAnimal;//动物数组
//动物报名
private void button3_Click(object sender, EventArgs e)
{
arrayAnimal = new Animal[2];
arrayAnimal[0] = new Cat("小花");
arrayAnimal [1]=new Dog ("丹丹")
}
private void button4_Click(object sender, EventArgs e)
{
foreach (Animal item in arrayAnimal )//遍历数组,让猫狗都Shout()
{
MessageBox.Show(item.Shout());
}
}
}
}
对这三大特性的理解还有待实践提高,希望大家给予指导!