Tag: oop

我如何inheritanceJavaScript的function?

// Don't break the function prototype. // pd – https://github.com/Raynos/pd var proto = Object.create(Function.prototype, pd({ "prop": 42 })); var f = function() { return "is a function"; }; f.__proto__ = proto; console.log(f.hasOwnProperty("prop")); // false console.log(f.prop); // 42 console.log(f()); // "is a function" .__proto__是非标准的,不推荐使用。 我应该如何inheritance原型创build一个对象,但该对象是一个函数。 Object.create返回一个对象不是一个函数。 new Constructor返回一个对象不是一个函数。 动机: – 跨浏览器finherit var finherit = function (parent, […]

什么时候和为什么要盖一堂课?

在C#和C ++ / CLI中,使用关键字sealed (或VB中的NotInheritable )来保护类不受任何inheritance机会(该类将是不可inheritance的)。 我知道面向对象编程的一个特点是inheritance,我觉得使用sealed是违背这个特性的,它会停止inheritance。 有没有一个例子显示sealed的好处,什么时候使用它是重要的?

什么是OpenGL编码的一些最佳实践(尤其是面向对象的方向)?

这个学期,我在我的大学学习了计算机graphics学课程。 目前,我们正在开始进入一些更高级的东西,如heightmaps,平均法线,tesselation等。 我来自一个面向对象的背景,所以我试图把我们所做的一切都放在可重用的类中。 我已经成功创build了一个相机类,因为它主要依赖于调用gluLookAt(),它几乎独立于OpenGL状态机的其余部分。 但是,我在其他方面遇到了一些麻烦。 用对象来表示原语对我来说并不是真正的成功。 这是因为实际的渲染调用依赖于如此多的外部事物,比如当前绑定的纹理等等。如果突然想要从表面法线改变为特定类的顶点法线,则会导致严重的头痛。 我开始怀疑OO原则是否适用于OpenGL编码。 至less,我认为我应该让我的课程更加细化。 什么是堆栈溢出社区对此的看法? 什么是OpenGL编码的最佳实践?

编译错误:“显式实现接口时,”修饰符“public”对此项“无效”

我得到这个错误,同时创build一个类的public方法显式实现interface 。 我有一个解决方法:通过删除PrintName方法的显式实现。 但我很惊讶,为什么我得到这个错误。 任何人都可以解释错误? 代码库: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test.Lib1 { public class Customer : i1 { public string i1.PrintName() //Error Here… { return this.GetType().Name + " called from interface i1"; } } public interface i1 { string PrintName(); } interface i2 { string PrintName(); } } 控制台testing应用程序代码: using […]

区分委托,组合和聚合(Java OOdevise)

我面临着一个持续不断的问题,即将授权,组成和聚合相互区分,并确定最好相互使用的情况。 我已经咨询了Java面向对象的分析和devise书,但是我的困惑依然存在。 主要的解释是这样的: 代表团 :当我的对象使用另一个对象的function,而不改变它。 构图 :我的对象由其他对象组成,这些对象在我的对象被销毁后又不能存在 – 垃圾收集。 聚合 :我的对象由其他对象组成,即使在我的对象被销毁后也可以存在。 是否可以举几个简单的例子来展示每个案例,以及背后的理由? 除了我的对象简单地引用另一个对象之外,还可以certificate这些例子怎么样? 提前谢谢了。

使用matplotlib面向对象的界面与seaborn绘图

我非常喜欢在OOP风格中使用matplotlib : f, axarr = plt.subplots(2, sharex=True) axarr[0].plot(…) axarr[1].plot(…) 这使得更容易跟踪多个数字和子图。 问:如何使用seaborn这种方式? 或者,如何将此示例更改为OOP样式? 如何告诉seaborn绘图function, Figure或Figure lmplot ?

C#中的覆盖和新关键字有什么区别?

在类层次结构中定义方法时,C#中的override和new关键字有什么区别?

多态性的实例

任何人都可以请给我一个真实的生活,多态的实际例子? 我的教授告诉我,我总是听到关于+运营商的那个老故事。 a+b = c和2+2 = 4 ,所以这是多态性。 我真的不能把自己与这样一个定义联系起来,因为我已经在许多书中阅读和重读了这个定义。 我需要的是一个真实世界的代码示例,我可以真正联想到的东西。 例如,这里是一个小例子,以防万一你想扩展它。 >>> class Person(object): def __init__(self, name): self.name = name >>> class Student(Person): def __init__(self, name, age): super(Student, self).__init__(name) self.age = age

在Python中inheritance方法的文档

我有一个面向对象的层次结构,它的代码本身需要尽可能多的维护。 例如, class Swallow(object): def airspeed(self): """Returns the airspeed (unladen)""" raise NotImplementedError class AfricanSwallow(Swallow): def airspeed(self): # whatever 现在,问题是AfricanSwallow.airspeed不会inheritance超类方法的文档string。 我知道我可以使用模板方法模式,即保持文档string class Swallow(object): def airspeed(self): """Returns the airspeed (unladen)""" return self._ask_arthur() 并在每个子类中实现_ask_arthur 。 但是,我想知道是否有另一种方式来让文档被inheritance,也许还有一些我还没有发现的装饰器呢?

为什么要使用接口,多inheritance与接口,接口的好处?

我仍然对这件事有些困惑。 我到现在为止发现的是 (类似的问题已经在这里被问到,但我还有其他一些观点。) 接口是唯一抽象方法和最终字段的集合。 Java中没有多重inheritance。 接口可以用来在Java中实现多重inheritance。 inheritance的一个优点是我们可以在派生类中使用基类的代码,而不需要再次编写它。 可能这是inheritance的最重要的事情在那里。 现在.. Q1。 由于接口只有抽象方法(无代码),所以我们怎么说如果我们正在实现任何接口,那么它是inheritance? 我们没有使用它的代码。 Q2。 如果实现一个接口不是inheritance,那么如何使用接口来实现多inheritance? Q3。 无论如何,使用接口有什么好处? 他们没有任何代码。 我们需要在我们实现它的所有类中一遍又一遍地编写代码。 那为什么要做接口? 注意:我发现了一个界面有帮助的例子。 其中一个例子就像在Runnable接口中我们有public void run()方法,在这个方法中我们定义了线程的function,并且在编码中内置了这个方法将作为一个单独的线程来运行。 所以我们只需要编码在线程中做什么,Rest是预定义的。 但是这个东西也可以用抽象类来实现。 那么使用接口有什么好处呢? 我们使用接口实现的是多重inheritance吗?