Как интерфейсы и наследование влияют на отношения между классами и объектами в Java? - PullRequest
0 голосов
/ 22 февраля 2019

По мере того, как я продолжаю расширять свои знания в области ООП-программирования, становится все труднее связать все концепции воедино.Отдельно я знаю, что такое объект, класс, интерфейс и наследование.Тем не менее, я не вижу "общую картину".

Объект воплощает определенную концепцию (класс) и сохраняет конкретные данные для этого класса.Это экземпляр класса, если быть более конкретным.

Класс определяет общий набор атрибутов и поведений для всех объектов своего класса ("шаблон")

Интерфейсы по сути являютсясписок дел для заголовков методов.Он ожидает, что его дети будут реализовывать эти абстрактные методы.Он делает это в попытке создать стандартный способ выполнения чего-либо в несвязанных классах (например, CompareTo () в Comparable)

Наследование позволяет подклассам расширять пространство проектирования для объектов, добавляя больше функциональности и поведения, в то же время все ещесохранение этого суперкласса.

Все эти понятия влияют на то, как объекты взаимодействуют с классами, но я не вижу, как наследование и интерфейсы имеют какое-либо отношение к объектам.Это довольно концептуальный вопрос, но что именно это за «большая картина»?Как все эти понятия влияют на отношения между классами и объектами?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Наследование в простых терминах - это приобретение свойств / поведения другого класса.Чтобы добиться наследования, мы должны использовать ключевое слово extends в JAVA.

Расширение класса B Класс A означает, что класс B будет действовать точно так же, как класс A, и все методы и переменные в классе A могут ссылаться с использованием класса Bтакже.то есть.Независимо от того, каким классом A обладает, он также является общим для класса B.

Принимая во внимание, что Interface является блоком определения типа (определяется пользователем).Абстрактный (неполный) класс можно назвать интерфейсом.Интерфейс допускает только незавершенные методы.Чтобы унаследовать интерфейс, у нас есть ключевое слово реализует в JAVA.Если Класс реализует Интерфейс, он обязан заключить контракт.

То есть: либо класс, реализующий Интерфейс, должен быть объявлен абстрактным, либо класс должен переопределить метод в Интерфейсе и завершить его (т.е. предоставитьтело метода).

Пример:

Interface Car

{ public void display(); //Incomplete Method, Method has no Implementation.

}

class B implements Car

{ public void display()

{ System.out.println(“HI”);

} }

Здесь метод отображения переопределен и завершен в классе B. Следовательно, нет необходимости объявлять класс B как абстрактный.

ПРИМЕЧАНИЕ. Множественное наследование с использованием класса невозможно в JAVA.то есть.Дочерний класс может расширяться или иметь только один родительский класс.

Множественное наследование возможно в JAVA с использованием интерфейсов.то есть.Интерфейс может расширять более одного интерфейса / реализовывать более одного интерфейса.

Объекты интерфейса не могут быть созданы, потому что он неполный.

Методы интерфейса должны быть нестатичными, потому что этонеполный и должен быть перезаписан, чтобы сделать его завершенным.Если методы интерфейса являются статическими, их нельзя переопределить, поскольку присутствует только одна копия статических членов, которая загружается во время загрузки класса.

0 голосов
/ 22 февраля 2019

Наследование - это концепция ОО, которая имеет много типов, таких как Single, Hybrid и т. Д. Java поддерживает множественное наследование в виде интерфейса.Интерфейс позволяет определить поведение или функциональность на абстрактном уровне.Это оставляет детям возможность реализовать это поведение или функциональность.Например (указано в официальных документах): вы можете определить поведение велосипеда, например, gearUp, gearDown, педаль, обрыв и т. Д., И позволить брендам реализовать свой стиль и функциональность.Ниже ссылка на документацию по Java.https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...