实现多态的方式

实现多态有三种方式:虚方法,抽象方法,接口。

 虚方法:子类重写父类中的方法,对父类中的方法进行覆盖。适用情况:父类中的方法对子类来说不适用,子类通过重写该方法,覆盖了父类中的方法。

public class Person

{

public virtual void SayHello()

{

Console.WriteLine("Say hello!");

}

}

public  class Chinese : Person

{

public override void SayHello()

{

Console.WriteLine("中国人问好!");

}

}

抽象方法:子类重写父类中的方法,父类中不对方法进行实现,在子类中进行实现,父类是抽象类。适用情况:针对同一种类型抽象出来的父类,对某些行为和属性大家都是公有的,但是这些属性和行为实现方式并不一致。

abstract  class Person

{

public abstract void SayHello();

}

class Chinese : Person

{

public override void SayHello()

{

Console.WriteLine("中国人问好!");

}

}

接口:实现接口的类,将接口中的方法实现。适用情况:A.当多个类型不能抽象出合理的父类时,但是又要对某些行为进行多态,将公共的方法抽象到一个接口中,让不同的子类调用。

public interface IFlyable//定义一个接口,实用interface 修饰,接口名以I开头,接口中只能包括方法,且方法没有访问修饰符,方法不实现。

{

void Fly();

void Jump();

}

class Student:Person,IFlyable//当一个类继承了父类,并且实现了多个接口的时候,被继承的类必须写在继承列表的第一个位置

{

public void Fly()

{

Console.WriteLine("I can fly");

}

}

你可能感兴趣的:(实现多态的方式)