A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

我先来一个对里氏替换原则的理解:
LSP---Liskov Substitution Principle(里氏替换原则):子类必须能够替换其基类
    public class DemoA
    {
        public void Method()
        {
            Console.WriteLine("基类方法!");
        }
        public virtual void Show()
        {
            Console.WriteLine("基类方法!");
        }
    }
    public class DemoB : DemoA
    {
        public void Method()
        {
            Console.WriteLine("子类方法!");
        }
        public override void Show()
        {
            Console.WriteLine("子类方法!");
        }
    }
    public class Program
    {
        static void Main(string[] args)
        {
            DemoA demo = new DemoB();
            demo.Method();//不能隐式的实现子类的方法,违反里氏替换原则
            demo.Show();//子类必须能够替换其基类,符合里氏替换原则
            Console.ReadKey(true);
        }
    }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
个人理解,所有的东西都可以理解为一个具体的对象,某一类具体的东西又可以抽象化,提取共同特征,共同行为,对特征和行为提供了封装特性,同时行为提供了对象之间的通信形式。对象之间的继承关系,多态特性,这方面的网上介绍的很多,可以参考一些简单示例去了解。如果说的有什么偏差,还望修正

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马