我在面试中遇到了这样的问题...
如果,假设 JAVA 决定从编程语言中删除继承,并且您有超过 1000 个使用继承的类(超类),该怎么办?如果您想更改超类中的某些内容(例如一个或多个方法),您将如何解决这个问题。最快、最有效的方法?
你怎么认为?:)
编辑:嘿,伙计们,我知道这不符合逻辑,Java 不会这样做,它是 OOP 的基本概念...但是这是一个令人费解的问题...您将如何解决“共享”代码的问题周围的应用程序,现在你不再有这个功能了。你会如何解决它?
我相信问题的核心在于更倾向于组合而不是继承的概念。
假设我们有这样的层次结构:
class Parent{
public String getName(){
return "xyz";
}
}
class Child extends Parent{}
Run Code Online (Sandbox Code Playgroud)
我们可以通过组合实现类似的关系:
class Parent{
public String getName(){
return "xyz";
}
}
class Child{
private Parent myParent;
public String getName(){
return myParent.getName();
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个过于简单的示例,但基础知识已经存在。有关更多信息,请参阅此问题的答案。