Q1: УПС: Наследование? Q2: Когда использовать? Q3: Преимущества? Q4: Недостатки? Q5: Объясните типы на примере? Q6: Факты о наследовании? Q7: Почему java не поддерживает множественное наследование? Q8: Как получить доступ к закрытым членам суперкласса?
1. Наследование:-
1.1 это механизм передачи определенных свойств и поведения одного класса и другого класса, т.е. родительского класса дочернему классу. 1.2 цель наследования – иметь возможность создавать новые классы, построенные на основе существующих классов, таких как новый дочерний класс для существующего родительского класса. 1.3 наследование представляет собой отношение IS-A, то есть отношение родитель-потомок. 1.4 модификаторы доступа играют важную роль в наследовании. Дочерний класс может получить доступ только к общедоступным и защищенным членам, а не к закрытым членам. Хотя мы можем косвенно использовать частных участников, используя общедоступные или защищенные функции. Нажмите здесь, чтобы просмотреть код для 1.4 point
Синтаксис и используемые термины
имя подкласса класса расширяет имя суперкласса {
//методы и поля }
-: класс – это группа объектов с общими свойствами. это шаблон или схема, из которой может быть создан объект. -: подкласс – класс, который наследует другой класс. Его также называют производным классом, расширенным классом или дочерним классом. -: суперкласс – класс, от которого подкласс наследует функции. Он также вызывается как базовый класс или родительский класс. -: расширяет – указывает, что новый класс наследуется от существующего класса.
Пример Ниже приведен исходный код
2. Когда использовать:-
2.1 Переопределение метода для достижения полиморфизма во время выполнения 2.2 Возможность повторного использования кода
3. Преимущества:-
3.1 возможность повторного использования 3.2 удобочитаемость 3.3 надежность, т.е. код базового класса будет уже протестирован и отлажен 3.4 снижение затрат из-за возможности повторного использования 3.5 поддержка расширяемости кода 3.6 неправильное использование или недостаточные знания могут привести к неправильным решениям
4. Недостатки:-
4.1 меньшее использование элементов данных, присутствующих в базовом классе, может привести к потере памяти. 4.2 надежность может привести к непреднамеренному повреждению, т.е. наследование вызывает связь между классами, таким образом, изменение базового класса повлияет на все дочерние процессы. 4.3 не может наследовать от конечного класса, т.е. приведенная ниже программа выдаст ошибку. заключительный класс Class1 {
… }
класс Class2 расширяет Class1{
… }
5 Типов:-
Единое наследование
1.1 подкласс расширяет или наследует функции одного суперкласса. напр.. дочерний класс наследует отцовский класс 1.2 В принципе, java использует только одно наследование, поскольку подкласс не может расширять больше суперкласса. НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ОЗНАКОМИТЬСЯ С ПРОСТОЙ ПРОГРАММОЙ
Многоуровневое наследование
2.1 класс будет наследовать базовый класс, а также производный класс также будет выступать в качестве базового класса для другого класса. напр.. дочь наследует от отца, а отец наследует от деда НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ОЗНАКОМИТЬСЯ С ПРОСТОЙ ПРОГРАММОЙ
Иерархическое наследование
3.1 один класс служит суперклассом для более чем одного подкласса. напр.. один учитель обслуживает нескольких учеников НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ОЗНАКОМИТЬСЯ С ПРОСТОЙ ПРОГРАММОЙ
Множественное наследование (не может быть реализовано с помощью класса в java)
4.1 один класс может иметь более одного суперкласса 4.2 java не поддерживает множественное наследование с классами, но это может быть достигнуто только с помощью интерфейсов НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ОЗНАКОМИТЬСЯ С ПРОСТОЙ ПРОГРАММОЙ
Гибридное наследование
5.1 комбинации двух или более типов наследования. 5.2 поскольку множественное наследование не может быть достигнуто в java с помощью классов, гибридное наследование также не может быть достигнуто в java с помощью классов. Но только с помощью наследования это может быть реализовано. НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ОЗНАКОМИТЬСЯ С ПРОСТОЙ ПРОГРАММОЙ
6. Факты о наследовании:-
6.1 только один суперкласс: Суперкласс может быть только один, это потому, что java не поддерживает множественное наследование с классами. 6.2 наследовать конструктор: производный класс может наследовать методы, переменные и вложенные классы от своего суперкласса, но конструкторы, это потому, что конструкторы не являются членами.
Однако конструкторы суперкласса могут быть вызваны из его производного класса
6.3 наследование не позволяет производному классу наследовать частные члены своего суперкласса.
Однако к нему можно получить доступ с помощью геттеров и сеттеров, чтобы получить к ним доступ.
7. Почему java не поддерживает множественное наследование:-
7.1 Для предотвращения двусмысленности: рассмотрим ситуацию, когда и Базовый класс 1, и базовый класс 2 имеют функцию calculate() с разной работой или поведением, тогда возникнет двусмысленность, если дочерний класс, который наследует оба базовых класса, попытается вызвать функцию calculate()
потому что компилятор java не может решить, какой calculate() он должен наследовать.
8. Как получить доступ к закрытым членам суперкласса?
Мы можем использовать методы получения и установки, которые Нажмите здесь, чтобы получить код
вариант 1. вернуть закрытый элемент вариант 2. вернуть открытый элемент, в котором хранятся значения закрытого элемента
Пожалуйста, прокомментируйте, если у вас есть какие-либо отзывы или предложения
Оригинал: “https://dev.to/supriya2371997/java-oop-inheritance-178l”