基于一些stackoverflow帖子:
Java 不支持多重继承。
我能想到一些解决方法:
第一个是组合:创建一个将这两个活动作为字段的类。
二是使用接口。// 这是我的问题
我尝试通过接口或组合构造一个可以有AA类方法和BB类方法的类。我读了很多关于继承与组合的文章,但我的问题是接口与组合(哪个更好)。如果我想在单个类 Preference 中使用这两个类方法,
class AA{
public int id(){
return 0;
}
}
class BB{
public String name(){
return "0";
}
}
显然,Java 不支持多重继承,我们需要使用接口或组合。
界面:
首先构造这两个类对应的接口:
interface AAInterface{
public int id();
}
interface BBInterface{
public String name();
}
然后构造一个实现这两个接口的 Preference 类,并在该类中声明两个类对象:
class Preference implements AAInterface, BBInterface{
AA aa;
BB bb;
public int id() {
return aa.id();
}
public String name() {
return bb.name();
}
}
组合: 直接构造一个有两个字段对应两个类对象的类,以便使用它们的方法。
class Preference{
AA aa;
BB bb;
public int id() {
return aa.id();
}
public String name() {
return bb.name();
}
}
因此,在Preference类中,通过使用其他接口或组合方法,我可以使用派生自AA类和BB类的id()方法和name()方法。
问题:为什么我们应该使用界面,因为组合更简单更好?我们有什么理由应该使用接口而不是组合?换句话说,如何使用java接口在一个类中获取两个类方法,我的方法是正确的方法吗?