.NET平台与程序设计【5】类的继承与多态
类的继承与多态
继承,子类与父类
继承是指 在子类中可以使用父类的一部分功能。
实现继承一般通过以下方式:
父类:class [父类名]{}
子类:class [子类名] : [父类名]
多态,使用虚拟函数实现重写(override)
子类使用父类重名的方法,但是想实现不同功能,我对多态的理解。
这个时候可以使用如下操作:
- 父类创建虚拟函数:
public virtual [数据类型][方法名]{}
- 子类使用重写(override):
public override [数据类型][方法名]{}
举个例子。其中Dog是父类,Poodle是子类。
class Dog
{
public string Name { get; set; }
public virtual void Bark()//通过使用virtual虚拟函数,可以实现重写
{
Console.WriteLine(Name + " : Woof!!");
}
}
class Poodle : Dog
{
public override void Bark()
{
Console.WriteLine(Name + " : Yip!Yip!");
}//同样是Bark函数,在Poodle这个子类中使用便会变成Yip!Yip!
}
完整代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sample05
{
class Dog
{
public string Name { get; set; }
public virtual void Bark()//通过使用virtual虚拟函数,可以实现重写
{
Console.WriteLine(Name + " : Woof!!");
}
}
class Poodle : Dog
{
public override void Bark()
{
Console.WriteLine(Name + " : Yip!Yip!");
}//同样是Bark函数,在Poodle这个子类中使用便会变成Yip!Yip!
}
internal class Program
{
static void Main(string[] args)
{
Dog mydog = new Dog() { Name = "Doggy" };//这样在new的同时改变属性
mydog.Bark();
////可以在Dog对象中存储Poodle对象
Dog myPoodle = new Poodle() { Name = "Puppy" };
myPoodle.Bark();
Console.ReadLine();
}
}
}
运行结果: