gpt4 book ai didi

java - 从特定类扩展,同时实现共享方法

转载 作者:行者123 更新时间:2023-12-01 12:29:26 24 4
gpt4 key购买 nike

我想要两个类:Layout1 和 Layout2。两者都会扩展特定的类,Layout1 将扩展 LayoutGroup1,Layout2 将扩展 LayoutGroup2。

但是,它们都有一些共同的代码,形式为名为 doSpecialLayout() 的函数。

理想情况下,我能够让每个类扩展其适当的类,并将共享的 doSpecialLayout() 代码放在两个都可以访问的公共(public)位置。这将使我的工作更加清晰,并提高我以后修复错误的能力,因为我不会每次都编辑两个类!

这样的事情可能吗?我知道我无法在 Java 中扩展多个类,那么我在这里寻找的模式是什么?

非常感谢!

仅供引用,这适用于 Android 系统上的 Java,因此仅支持 Java 6(7?)。

最佳答案

使用Java 8,您可以使用接口(interface)而不是抽象类轻松实现这一点。使用默认方法定义一个接口(interface),该方法将保留通用功能。

interface someInterface
{
default void doSpecialLayout(){System.out.println("Hello");}
}

class LayoutGroup1
{

}
class LayoutGroup2
{

}
class Layout1 extends LayoutGroup1 implements someInterface
{
void someFunction()
{
doSpecialLayout();
}
}

class Layout2 extends LayoutGroup1 implements someInterface
{
void someFunction()
{
doSpecialLayout();
}
}

Java 6:中,只需使用父类即可。

class someclass
{
void doSpecialLayout(){System.out.println("Hello");}
}

class LayoutGroup1 extends someclass
{

}
class LayoutGroup2 extends someclass
{

}
class Layout1 extends LayoutGroup1
{
void someFunction()
{
doSpecialLayout();
}
}

class Layout2 extends LayoutGroup1
{
void someFunction()
{
doSpecialLayout();
}
}

关于java - 从特定类扩展,同时实现共享方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26060812/

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