lsp

    0热度

    1回答

    在编程语言中,如果您希望子对象应该作为父类&的替代品,但它不应该放弃自己的身份(作为子级),您必须获得父级的许可。这就是为什么我们使用C#或C++虚拟化这些方法的原因。这成为一个完整的隐藏。在Java中是否将整个隐藏视为重写? 99%的时间我在这里有错误的概念,因为我认为我正在考虑它只隐藏。像JAVA一样,重写函数可以完全隐藏起来吗?

    0热度

    1回答

    的BinaryTreeNode从GraphNode的讨论出现在这里: Changing visibility of method in inherited class 的问题是:真的是“BTNode扩展GraphNode”设计违反了里氏的替代Princeple的?作为一个“类似”的例子,它显示的情况: Is deriving square from rectangle a violation of

    3热度

    2回答

    的里氏替换原则状态 if S is a subtype of T , then objects of type T may be replaced with objects of type S without altering any of the desirable properties of that program. 然而,在Scala中,存在PartialFunction是不适用/在所有情

    2热度

    3回答

    我在程序中有一个设计问题,这是由于abstract基地有一个方法带有一个位置(因此是可选的)参数。 比方说这个班级是A,方法是void f(x, [y]);。现在,y是可选的,因为我已经知道一些A的子类将使用它,其中一些不会。 实际的问题是违反了里氏替换原则:在需要y子类我不得不抛出一个异常,如果不提供y,而在A.f(这是未实现的),我不抛出任何异常。 A的设计也不好,因为我提供了一个方法f,其中

    2热度

    2回答

    我想知道我该如何组织我的两堂课。 其中之一代表Knife:只是一个简单,坚实,基本的,就像一把菜刀。 另一个是PocketKnife,其状态为已打开或已关闭。 在我的代码的类 class Knife{ public function cut() {/* do the cutting */} } class PocketKnife extends Knife{ private

    2热度

    3回答

    如所述here, 行为亚型的里氏的概念定义 可替代性的一个对象的概念;也就是说,如果S是T的子类型,那么在程序中类型T的对象可以用类型S 的对象代替而不改变该程序的任何期望属性(例如 正确性)。 假设,我们有下一个类层次结构: 的基础上,抽象类 - AnimalWithFur。它具有只读属性furColor,这应该在后继中被覆盖。 基类的后继者 - Cat,它覆盖了furColor并返回灰色。 猫

    1热度

    2回答

    我有一个最初创建的代码库,其中包含许多不同的选项,这些选项允许您以稍微不同的方式获取代码以执行相同的过程, : public class MainFunction { public void main(String option){ if (option.equals("vanilla mode")){ this.firstFunction(); }els

    0热度

    1回答

    在Python 3中有没有一种方法表明一个类不支持其父类支持的某些操作?*我知道类可以将__hash__设置为None以指示类型不可用,但这似乎不起作用一般来说。 例如,假设我有一个集合类,其中有一个__len__方法,我想让一个子类代表一个没有定义大小的无限集合。如果我在子类中将__len__设置为None,当我尝试获取集合的长度时,会收到一个丑陋/令人困惑的错误消息。 >>> class C:

    3热度

    1回答

    我正在阅读为什么Java中的数组协方差不好(Why are arrays covariant but generics are invariant?)。如果Dog是Animal的子类型,则Dog[]是Animal[]的子类型。这是一个问题,因为可以这样做: Animal[] animals = new Dog[1]; animals[0] = new Cat(); 这与正确实施的泛型不同。

    1热度

    1回答

    可以将Xtext LSP服务器作为dls作为服务使用吗?所有文件都存储在服务器(远程位置)并同时处理来自不同客户端的多个连接? 如果是有任何建议如何实现这将非常感激。