通过组合多重继承

时间:2018-10-16 16:41:39

标签: java multiple-inheritance composition

今天在一次采访中,有人问我是否可以在JAVA中进行多重继承,我说可以通过实现多个接口来实现,但不完全是,她回答说可以,可以通过组成... 我不确定这是否正确。如果是,那么请问您能如何精确解释代码片段?

1 个答案:

答案 0 :(得分:0)

Java不支持类的多重继承,它只能对接口进行支持。

组合是通过以下方式从您的类中访问外部类的某些方法/字段的一种方式:

//This is a pseudo-code. Don't compile!
class YourClass{
    private ExternalClass obj;
    private AnotherExternalClass obj1;

    //initialize obj, obj1 in constructor

    public String getName(){
        return obj.getName();
    }

    public String getTitle(){
        return obj1.getTitle();
    }
}

class ExternalClass{

    private String Name;

    //constructor to initialize Name ...

    public String getName(){
        return this.Name;
    }
}

class AnotherExternalClass{

    private String Title;

    //constructor to initialize Title ...

    public String getTitle(){
        return this.Title;
    }
}

通过这种编码风格,YourClass现在可以访问ExternalClass的getName方法,访问者可能将其称为某种“继承”类型。