首页 > 解决方案 > 通过组合实现多重继承

问题描述

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

标签: javamultiple-inheritancecomposition

解决方案


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 方法,面试官可能将其称为某种“继承”


推荐阅读