polymorphism

    0热度

    5回答

    所以,我是从深入浅出学习Java的在那里我阅读 - 一种重载方法只是碰巧有相同的方法名不同的方法,它无关,与继承和多态。 不过,我命名为Java的另一个著名的书 - 由赫伯特·希和这本书完全参考,我读: 方法重载是该Java支持多态的方式之一。方法重载支持多态,因为它是Java实现“一个接口,多个方法”范例的一种方式。 其中哪一个是正确的?

    -1热度

    2回答

    比如我有: class A{ public: virtual void run(){...} }; class B:public A { public: void run(){...} }; A* ptr= new B(); 我只有一个指针“ptr'.I知道,指针的类型是‘A *’,但我不知道它是否指向类的反对” A '或'B'或其他一些从类A派生出来的类'X',并且还实

    0热度

    2回答

    我想了解OOP的主要支柱。 当我读微软文档中的继承定义。有这部分: 继承使您能够创建新的类,以重用,扩展和修改其他类中定义的行为。 来源:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/inheritance 所有的这我很清楚,但是, 我的问题是:这不是定义的一部分:“修改在其

    0热度

    1回答

    我正在开发一个C#WinForm应用程序的工作,但我卡住了,我不知道哪一个是最好的方式继续下去。下面是代码 class Block() { // generic Block properties } class ABlock() : Block { // specific ABlock stuff } class BBlock() : Block {

    0热度

    1回答

    有时,一个类型被声明为实现两个接口,它们都具有相同名称的抽象属性,但是当我将有界类型参数移动到顶级抽象超类并将其在不同对象中进行子类化时,在使用子类的类型参数时,覆盖两个超级接口上的抽象属性的类无法编译。 生成的接口和抽象类: interface Actor : Type { val login: Stub<String> val posts: Config<String, B

    -1热度

    2回答

    我有一个基类 class Base { public: virtual void func() = 0; } 我有一个具体的派生类 class Derived : public Base { public: void func() {func2();} void func2() {}; } 最后,我有一个派生类 class Derive

    0热度

    2回答

    我尝试重写基类函数,但是因为我已经模板化了它的子类/派生类/子类,我无法重写该函数,具体取决于我实例化的类型带有的模板。 struct BaseType { virtual double getPropertyValue() = 0; }; template <typename T> struct NumberType : BaseType { T property

    1热度

    2回答

    我正在为Java创建一个小型库,并且其中一部分API是一个带有3个参数的函数接口(因此,lambda表达式)。我意识到他们中的两个可能经常是不需要的。因此,我认为做这样的事情: class Main { public static void main(String[] args) { call((s) -> System.out.println(s)); }

    3热度

    1回答

    有没有办法根据其他调用来替换可能的基类的多个函数的“堆栈继承”类型? 例如像: class Base { void func1(){/* do something */} void func2(){/* do something */} }; class A1 { void func1(){/* do something else */} }; clas

    2热度

    1回答

    我正在尝试实现CRTP类的层次结构。我对基类能够访问一个派生类向下该链的数据成员: #include <iostream> template <class Derived> class A { public: void showv() { std::cout << static_cast<const Derived*>(this)->v << std::endl;