java - 通过组合实现多重继承
问题描述
今天在一次采访中,有人问我是否可以在 JAVA 中进行多重继承,我说可以通过实现多个接口来实现,但不完全是,她回答说是的,可以通过 Composition.. .我不确定这是否正确。如果是,那么究竟如何,如果可能的话,您能否详细解释一下代码片段......?
解决方案
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 方法,面试官可能将其称为某种“继承”
推荐阅读
- angular - 使用代码身份验证流程与身份服务器陷入重定向循环
- python - 评估 Click cli 函数后如何继续执行 Python 脚本?
- swift - 我如何编码 UIButton 的标题以在两个视图控制器之间进行更改?
- azure-devops - ARM 模板部署失败 BadRequest
- android - 为什么 kotlin 中的 readfile 和 string 这两种类型不同?
- reactjs - 纱线构建案例错误命令失败exir代码64
- triggers - 在 Trigger 中访问 globalState
- c# - C#从另一个类中的类访问字符串值
- python - panda df 迭代,基于时间的数据分箱(以毫秒为单位)
- android - 必须在 val 变量中初始化错误