gpt4 book ai didi

Java抽象类实现

转载 作者:行者123 更新时间:2023-11-30 06:37:38 24 4
gpt4 key购买 nike

假设我有抽象类 A 和继承自 A 的抽象类 B,我创建了一个类 A 的对象,如下所示:

abstract class A {
void func1();
}

abstract class B extends A {
void func2();
}

A objectA = new A() {
func1(){
//implementation
}
};

有没有办法让我做这样的事情:

B objectB = new B(objectA) {
func2(){
//implementation
}
};

以便objectB从objectA获取A的功能实现?

最佳答案

您可以这样做(通过组合,因为您将无法从匿名内部类 objectA 继承):

 abstract class A {
abstract void func1();
}

abstract class B extends A {
A wrapped;
public B(A objectA) {
wrapped = objectA;
}
abstract void func2();
}

A objectA = new A() {
void func1(){
//implementation
}
};

B objectB = new B(objectA) {
public void func1() {
wrapped.func1();
}
public void func2() {
// impl
}
};

据我所知,您不能在 objectB 中定义新的构造函数,因此您不得不在类 B 中声明它。

关于Java抽象类实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com