里氏替换原则的实现方式:子类可以出现在任何需要父类出现的地方
动态多态性:
1.虚方法的动态多态性
2.抽象方向的动态多态性
3.接口方法的动态多态性
动态多态性的作用:
1.实现"功能定义"与"功能实现"相脱离,实现代码进一步灵活性
2.实现"系统设计"与"系统代码"相脱离,实现代码稳定性,减少系统BUG
using System;
namespace 动态多态性
{
class Person
{
public virtual void Speak(){
Console.WriteLine("父类说");
}
}
class Zhang:Person
{
public override void Speak ()
{
Console.WriteLine("张说");
}
}
interface IPerson
{
void Speak();
}
interface IPersonTwo
{
void Speak();
}
class Chinese:IPerson,IPersonTwo
{
void IPerson.Speak(){
Console.WriteLine ("中国人说中国话");
}
void IPersonTwo.Speak(){
Console.WriteLine ("中国人还会说英语");
}
}
class MainClass
{
public static void Main (string[] args)
{
//虚方法的动态多态性
// Person p = new Zhang();
// p.Speak();
//动态多态性之接口
IPerson ip = new Chinese();
ip.Speak ();
IPersonTwo ip2 = new Chinese ();
ip2.Speak ();
}
}
}