黑马程序员技术交流社区

标题: 大家来分享一下对面向对象原则的理解! [打印本页]

作者: ♂张耕明    时间: 2012-10-21 22:15
标题: 大家来分享一下对面向对象原则的理解!
我先来一个对里氏替换原则的理解:
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);
        }
    }

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2