首页 > 代码库 > 里氏代换原则等
里氏代换原则等
《Java与模式》读书笔记。
里氏代换原则
里氏代换原则(LSP)简言之就是基类的属性方法一定是适应于子类的,反之则不然。
在编译期,Java编译器就会检查程序是否是符合里氏代换原则,不符合就不能通过。违反里氏代换原则的一个例子就是子类试图将基类中的public方法覆盖为private方法,是编译不过的,子类中接口的使用范围只能更广。
Java编译器检查程序是否是符合里氏代换原则是有限的,实现层次和逻辑层次是无法判断的。
Java API中也有违反里氏代换原则的例子,Properties继承自Hashtable。Properties假设key和value都是String型的,而Hashtable中的key和value都是Object型的,适用于Hashtable不一定就适用于Properties。
Properties ps = new Properties();
ps.setProperty("123", "111");
ps.put("123", 111); //从Hashtable中继承
System.out.println(ps.getProperty("123")); //返回结果null
对于违反里氏代换原则可以做如下的处理。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。