Я знаю, что это очень простой, классический и простой вопрос, который задает вопрос о различиях между интерфейсами и абстрактными классами в java. Но этот вопрос немного другой.Если ограничение на множественное наследование удалено, тогда какая разница между интерфейсом и абстрактным классом в Java?
Я понимаю, что Java не поддерживает наследование из нескольких классов, чтобы избежать проблемы с алмазом, и, следовательно, разработала концепцию интерфейса как альтернативный способ облегчения своего рода множественного наследования. Но является ли это единственной причиной, по которой существуют интерфейсы?
Что делать, если по какой-то причине Java Guys в одной из своих новых версий решают преодолеть это ограничение и позволить наследовать от нескольких классов, то какая разница между абстрактными классами и интерфейсами? Будут ли они просто синонимами? У интерфейсов все еще есть причина для существования или просто будет избыточным?
Вы имеете в виду, если классы, где разрешено наследовать несколько * полностью * абстрактных классов? (т. е. классы с * только * абстрактными методами) – aioobe
m боятся его слишком поздно для java-парней, чтобы сделать это, поскольку много кода уже написано со старыми правилами, и его изменение вызовет много проблем совместимости ... – WickeD
You не может обсуждать концепцию абстрактного класса и интерфейса здесь. Вы можете задавать только программные проблемы. И добавив к этому, вы не можете сказать, что чистый абстрактный класс аналогичен интерфейсу. например. Можете ли вы наследовать несколько классов в абстрактном классе? Нет. Для этого вам необходимо иметь интерфейсы. –