多态的例子:建立抽象类,包含抽象abstract方法,建立多个子类继承抽象类,并使用override重写抽象方法,把这些子类加到一个抽象类集合里,调用抽象方法就可以执行子类的方法,而不必关心子类的具体实现。
接口和抽象类:类只能继承一个,接口可以继承多个。继承抽象类的子类有共性,而接口只针对单一功能,比如老鹰和企鹅都继承鸟类,但企鹅不能飞,所以鸟类里不能有飞的方法,这时可以单独建立一个飞的接口,老鹰继承这个接口,实现飞。
虚方法和抽象方法:虚方法有方法体,存在于一个正常的类中,不必实现,抽象方法没有方法体,必须存在于抽象类中,必须被实现,抽象类不能实例化,只被能继承。
base和this的使用:base调用基类的构造函数,this调用本类的构造函数,调用顺序是从冒号开始顺序执行。
class Program
{
static void Main(string[] args)
{
objClass a = new objClass();
//输出 基类有参构造函数str本类有参构造函数str本类无参构造函数
Console.ReadLine();
}
public class BaseClass
{
public BaseClass()
{
Console.Write("基类无参构造函数");
}
public BaseClass(string name)
{
Console.Write("基类有参构造函数" + name);
}
}
public class objClass : BaseClass
{
public objClass() : this("str")
{
Console.Write("本类无参构造函数");
}
public objClass(string name) : base(name)
{
Console.Write("本类有参构造函数" + name);
}
}
}