比如我有: class A{
public:
virtual void run(){...}
};
class B:public A {
public: void run(){...}
};
A* ptr= new B();
我只有一个指针“ptr'.I知道,指针的类型是‘A *’,但我不知道它是否指向类的反对” A '或'B'或其他一些从类A派生出来的类'X',并且还实
有时,一个类型被声明为实现两个接口,它们都具有相同名称的抽象属性,但是当我将有界类型参数移动到顶级抽象超类并将其在不同对象中进行子类化时,在使用子类的类型参数时,覆盖两个超级接口上的抽象属性的类无法编译。 生成的接口和抽象类: interface Actor : Type {
val login: Stub<String>
val posts: Config<String, B
我有一个基类 class Base {
public:
virtual void func() = 0;
}
我有一个具体的派生类 class Derived : public Base {
public:
void func() {func2();}
void func2() {};
}
最后,我有一个派生类 class Derive
我正在为Java创建一个小型库,并且其中一部分API是一个带有3个参数的函数接口(因此,lambda表达式)。我意识到他们中的两个可能经常是不需要的。因此,我认为做这样的事情: class Main {
public static void main(String[] args) {
call((s) -> System.out.println(s));
}
有没有办法根据其他调用来替换可能的基类的多个函数的“堆栈继承”类型? 例如像: class Base {
void func1(){/* do something */}
void func2(){/* do something */}
};
class A1 {
void func1(){/* do something else */}
};
clas