Что такое super в java

Супер ключевое слово в Java

Ключевое слово super в java — это ссылочная переменная, которая используется для ссылки на объекты родительского класса. Ключевое слово «супер» вошло в картину с понятием наследования. Он в основном используется в следующих контекстах:

1. Использование super с переменными. Этот сценарий возникает, когда производный класс и базовый класс имеют одинаковые члены данных. В этом случае есть вероятность двусмысленности для JVM. Мы можем понять это более четко, используя этот фрагмент кода:

/ * Автомобиль базового класса * /

class Car extends Vehicle

/ * печать maxSpeed базового класса (транспортное средство) * /

/ * Программа для проверки драйверов * /

public static void main(String[] args)

Car small = new Car();

В приведенном выше примере базовый класс и подкласс имеют член maxSpeed. Мы можем получить доступ к maxSpeed базового класса в sublcass, используя ключевое слово super.

2. Использование super с методами: используется, когда мы хотим вызвать метод родительского класса. Поэтому, когда родительский и дочерний класс имеют одинаковые именованные методы, для устранения неоднозначности мы используем ключевое слово super. Этот фрагмент кода помогает понять упомянутое использование ключевого слова super.

/ * Базовый класс Person * /

System.out.println( «This is person class» );

class Student extends Person

System.out.println( «This is student class» );

// Обратите внимание, что display () только в классе Student

// вызовет или вызовет текущий метод класса message ()

// вызовет или вызовет метод message () родительского класса

/ * Программа для проверки драйверов * /

public static void main(String args[])

Student s = new Student();

// вызываем display () объекта Student

В приведенном выше примере мы видели, что если мы вызываем только метод message (), то вызывается текущий класс message (), но с использованием ключевого слова super можно также вызывать message () из суперкласса.

3 Использование super с конструкторами: ключевое слово super также можно использовать для доступа к конструктору родительского класса. Еще одна важная вещь заключается в том, что «супер» может вызывать как параметрические, так и непараметрические конструкторы в зависимости от ситуации. Ниже приведен фрагмент кода для объяснения вышеуказанной концепции:

System.out.println( «Person class Constructor» );

/ * Подкласс Студент, расширяющий класс Персона * /

class Student extends Person

// вызывать или вызывать конструктор родительского класса

System.out.println( «Student class Constructor» );

/ * Программа для проверки драйверов * /

public static void main(String[] args)

Student s = new Student();

В приведенном выше примере мы вызывали конструктор суперкласса, используя ключевое слово «super» через конструктор подкласса.

Другие важные моменты:

Источник

Наследование

Содержание

Наследование — это процесс перенимания классом свойств (методов и полей) другого класса. С использованием в Java наследования информация становится управляемой в иерархическом порядке.

Класс, который наследует свойства другого класса, называется подклассом (производным классом, наследующим классом), а класс, свойства которого наследуются, известен как суперкласс (базовый класс, родительский класс)

Ключевое слово extends

extends — это кодовое слово, используемое для наследования свойств класса. Взглянем на синтаксис этого ключевого слова.

Синтаксис

Пример кода

Дальше приведён пример процесса наследования на Java. На этом примере Вы можете рассмотреть два класса с именами Calculator и My_Calculator.

Используя ключевое слово extends в Java, My_Calculator перенимает методы addition() и subtraction() класса Calculator.

Скопируйте и вставьте эту программу в файле под именем My_Calculator.java

Скомпилируйте и выполните вышеприведённый код, как показано ниже.

После запуска программы получим следующий результат:

В данной программе, при создании объекта классу My_Calculator, копия содержимого суперкласса создаётся в нём же. Поэтому, используя объект подкласса, Вы можете получить доступ к членам суперкласса.

Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java

Ссылочная переменная суперкласса может содержать объект подкласса, но, используя эту переменную, Вы можете иметь доступ только к членам суперкласса, поэтому, чтобы иметь доступ к членам обоих классов, рекомендуется всегда создавать ссылочную переменную к подклассу.

Обращаясь к программе выше, Вы можете создать экземпляр класса, как в примере ниже. Но, используя ссылочную переменную суперкласса, Вы не можете вызвать метод multiplication(), который принадлежит подклассу My_Calculator.

Примечание: подкласс наследует все члены (поля, методы, вложенные классы) из суперкласса. в Java конструкторы не являются членами, поэтому они не наследуются подклассом, но конструктор суперкласса может быть вызван из подкласса.

Ключевое слово super

Ключевое слово super схоже с ключевым словом this. Ниже приведены случаи, где используется super в Java.

Дифференциация членов

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

Пример кода

Этот раздел содержит программу, которая демонстрирует использование ключевого слова super в Java.

В предложенной программе у вас есть два класса с именами Sub_class и Super_class, оба имеющие метод display() с разными реализациями и переменную с именем num с разными значениями. Вы можете увидеть, что мы использовали ключевое слово super для дифференциации членов суперкласса из подкласса.

Скопируйте и вставьте эту программу в файле под именем Sub_class.java.

Скомпилируйте и выполните вышеприведённый код, как показано ниже.

После запуска программы будет получен следующий результат:

Вызов конструктора суперкласса

Если класс перенимает свойства другого класса, подкласс автоматически получается стандартный конструктор суперкласса. Но если Вы хотите вызвать параметризованный конструктор суперкласса, Вам нужно использовать ключевое слово super, как показано ниже.

Пример кода

В предложенной программе демонстрируется использование в Java ключевого слова super для вызова параметризованного конструктора. В этой программе содержится суперкласс и подкласс, где суперкласс содержит параметризованный конструктор, который принимает строковое значение, а мы используем ключевое слово super для вызова параметризованного конструктора суперкласса.

Скопируйте и вставьте эту программу в файле под именем Subclass.java

Скомпилируйте и выполните вышеприведённый код, как показано ниже.

После запуска программы будет выдан результат:

Отношение IS-A

IS-A — это способ сказать «Этот объект является типом этого объекта». Давайте посмотрим, как ключевое слово extends используется для достижения наследования.

Теперь, основываясь на примере выше, в объектно-ориентированных терминах, следующие утверждения верны

Теперь, используя отношение IS-A, мы можем сказать так:

С использованием ключевого слова extend, подклассы могут наследовать все свойства суперкласса кроме его приватных свойств (private).

Мы можем убедиться, что Mammal на самом деле Animal с использованием оператора экземпляра.

Мы получим следующий результат:

Так как у нас есть хорошее понимание принципа работы ключевого слова extends, давайте рассмотрим, как используется ключевое слово implements для получения отношения IS-A.

В общем, ключевое слово implements в Java используется с классами для перенятия свойств интерфейса. Интерфейсы никогда не могут быть переняты классом с помощью extends.

Пример

Ключевое Слово instanceof

Давайте использует оператор instanceof в Java с целью проверки, являются ли Mammal и Dog на самом деле Animal.

Пример

Мы получим следующий результат:

Отношение HAS-A

Эти отношения в основном основаны на обращении. Они определяют, является ли определенный класс HAS-A определенным случаем. Эта взаимосвязь помогает уменьшить дублирование кода, а также баги. Взглянем на пример.

Мы видим, что у класса Van HAS-A (есть) Speed. Имея отдельный класс Speed, нам не нужно вставлять код, принадлежащий Speed в класс Van, что позволяет нам использовать класс Speed в нескольких приложениях.

В особенности объектно-ориентированного программирования, пользователям не нужно волноваться о том, какой объект выполняет текущую работу. Для достижения этого, класс Van скрывает детали реализации от пользователей класса Van. Таким образом, пользователи, должны попросить класс Van выполнить определенное действие, и класс Van либо выполнит работу сам по себе, либо попросит другой класс выполнить действие.

Виды наследования

Есть различные способы наследования, как показано ниже.

ВидСхемаПример
Одиночное наследование Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java
Многоуровневое наследование Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java
Иерархическое наследование Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java
Множественное наследование Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java

Очень важно запомнить, что Java не поддерживает множественное наследование. Это значит, что класс не может продлить более одного класса. Значит, следующее утверждение НЕВЕРНО:

Тем не менее, класс может реализовать один или несколько интерфейсов, что и помогло Java избавиться от невозможности множественного наследования.

Источник

Наследование

Чтобы наследовать класс, достаточно вставить имя наследуемого класса с использованием ключевого слова extends:

В этом коде мы наследуемся от класса Activity и добавляем свой код, который будет отвечать за наше приложение.

Подкласс в свою очередь может быть суперклассом другого подкласса. Так например, упоминавший ранее класс TextView является суперклассом для EditText.

В производный класс можно добавлять новые методы.

Для каждого создаваемого подкласса можно указывать только один суперкласс. При этом никакой класс не может быть собственным суперклассом.

Хотя подкласс включает в себя все члены своего суперкласса, он не может получить доступ к тем членам суперкласса, которые объявлены как private.

Помните, мы создавали класс Box для коробки кота. Давайте наследуемся от этого класса и создадим новый класс, который будет иметь не только размеры коробки, но и вес.

В том же файле Box.java после последней закрывающей скобки добавьте новый код:

Возвращаемся в главную активность и пишем код:

Обратите внимание, что мы вызываем метод getVolume(), который не прописывали в классе HeavyBox. Однако мы можем его использовать, так как мы наследовались от класса Box и нам доступны все открытые поля и методы. Заодно мы вычисляем вес коробки с помощью новой переменной, которую добавили в подкласс.

Теперь у нас появилась возможность складывать в коробку различные вещи. В хозяйстве всё пригодится.

При желании вы можете создать множество разных классов на основе одного суперкласса. Например, мы можем создать цветную коробку.

Ключевое слово super

В Java существует ключевое слово super, которое обозначает суперкласс, т.е. класс, производным от которого является текущий класс. В данном случае, супер не означает превосходство, скорее даже наоборот, дочерний класс имеет больше методов, чем родительский. Само слово пошло из теории множеств, где используется термин супермножество. Посмотрим, зачем это нужно.

В конструкторе HeavyBox мы дублировали поля width,height и depth, которые уже есть в классе Box. Это не слишком эффективно. Кроме того, возможны ситуации, когда суперкласс имеет закрытые члены данных, но мы хотим иметь к ним доступ. Через наследование это не получится, так как закрытые члены класса доступны только родному классу. В таких случаях вы можете сослаться на суперкласс.

Ключевое слово super можно использовать для вызова конструктора суперкласса и для обращения к члену суперкласса, скрытому членом подкласса.

Использование ключевого слова super для вызова конструктора суперкласса

Вызов метода super() всегда должен быть первым оператором, выполняемым внутри конструктора подкласса.

При вызове метода super() с нужными аргументами, мы фактически вызываем конструктор Box, который инициализирует переменные width, height и depth, используя переданные ему значения соответствующих параметров. Вам остаётся инициализировать только своё добавленное значение weight. При необходимости вы можете сделать теперь переменные класса Box закрытыми. Проставьте у полей класса Box модификатор private и убедитесь, что вы можете обращаться к ним без проблем.

У суперкласса могут быть несколько перегруженных версий конструкторов, поэтому можно вызывать метод super() с разными параметрами. Программа выполнит тот конструктор, который соответствует указанным аргументам.

Вторая форма ключевого слова super действует подобно ключевому слову this, только при этом мы всегда ссылаемся на суперкласс подкласса, в котором она использована. Общая форма имеет следующий вид:

Здесь член может быть методом либо переменной экземпляра.

Подобная форма подходит в тех случаях, когда имена членов подкласса скрывают члены суперкласса с такими же именами.

В результате мы должны увидеть:

Таким образом, знакомое нам выражение super.onCreate(savedInstanceState) обращается к методу onCreate() из базового класса.

Создание многоуровневой иерархии

Мы использовали простые примеры, состоящие из суперкласса и подкласса. Можно строить более сложные конструкции, содержащие любое количество уровней наследования. Например, класс C может быть подклассом класса B, который в свою очередь является подклассом класса A. В подобных ситуациях каждый подкласс наследует все характеристики всех его суперклассов.

Напишем пример из трёх классов. Суперкласс Box, подкласс HeavyBox и подкласс MoneyBox. Последний класс наследует все характеристики классов Box и HeavyBox, а также добавляет поле cost, которое содержит стоимость коробки.

Box.java

HeavyBox.java

MoneyBox

Код для основной активности, например, при щелчке кнопки:

В результате мы получим различные значения, вычисляемые в коде. Благодаря наследованию, класс MoneyBox может использовать классы Box и HeavyBox, добавляя только ту информацию, которая нам требуется для его собственного специализированного применения. В этом и состоит принцип наследования, позволяя повторно использовать код.

Метод super() всегда ссылается на конструктор ближайшего суперкласса в иерархии. Т.е. метод super() в классе MoneyBox вызывает конструктор класса HeavyBox, а метод super() в классе HeavyBox вызывает конструктор класса Box.

Если в иерархии классов конструктор суперкласса требует передачи ему параметров, все подклассы должны передавать эти параметры по эстафете.

В иерархии классов конструкторы вызываются в порядке наследования, начиная с суперкласса и заканчивая подклассом. Если метод super() не применяется, программа использует конструктор каждого суперкласса, заданный по умолчанию или не содержащий параметров.

Вы можете создать три класса A, B, C, которые наследуются друг от друга (A←B←C), у которых в конструкторе выводится текст и вызвать в основном классе код:

Вы должные увидеть три строчки текста, определённые в каждом конструкторе класса. Поскольку суперкласс ничего не знает о своих подклассах, любая инициализация полностью независима и, возможно, обязательна для выполнения любой инициализацией, выполняемой подклассом.

Переопределение методов

Если в иерархии классов имя и сигнатура типа метода подкласса совпадает с атрибутами метода суперкласса, то метод подкласса переопределяет метод суперкласса. Когда переопределённый метод вызывается из своего подкласса, он всегда будет ссылаться на версию этого метода, определённую подклассом. А версия метода из суперкласса будет скрыта.

Если нужно получить доступ к версии переопределённого метода, определённого в суперклассе, то используйте ключевое слово super.

Не путайте переопределение с перегрузкой. Переопределение метода выполняется только в том случае, если имена и сигнатуры типов двух методов идентичны. В противном случае два метода являются просто перегруженными.

В Java SE5 появилась запись @Override; она не является ключевым словом. Если вы собираетесь переопределить метод, используйте @Override, и компилятор выдаст сообщение об ошибке, если вместо переопределения будет случайно выполнена перегрузка.

Для закрепления материала создадим класс Animal с одним методом.

Теперь создадим класс Cat, наследующий от первого класса.

Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java

В результате в класс будет добавлена заготовка:

Попробуем вызвать данный метод в основном классе активности:

Мы получим текст, который определён в суперклассе, хотя вызывали метод дочернего класса.

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

Запускаем программу и нажимаем на кнопку. И получим уже другой ответ, более соответствующий описанию среднестатистического кота. Заметьте, что код для щелчка кнопки мы не меняем, но система сама разберётся, что выводить нужно текст не из суперкласса, а из дочернего класса.

Рассмотрим другой пример переопределения методов. Создадим суперкласс Figure, который будет содержать размеры фигуры, а также метод для вычисления площади. А затем создадим два других класса Rectangle и Triangle, у которых мы переопределим данный метод.

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

Источник

MnogoBlog

как создать сайт на wordpress, настроить и оптимизировать wordpress

Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java

Java Урок 37: НАСЛЕДОВАНИЕ, ключевое слово super

В предшествующих примерах классы, производные от класса Box, были реализованы не столь эффективно и надежно, как могли бы. Например, конструктор BoxWeight() явно инициализирует поля width, height и depth класса Box. Это не только ведет к дублированию кода суперкласса, что весьма неэффективно, но и предполагает наличие у подкласса доступа к этим членам.
Скачать исходники для статьи можно ниже

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

Поскольку инкапсуляция — один из главных атрибутов ООП, не удивительно, что язык Java предлагает решение этой проблемы.
Во всех случаях, когда подклассу нужно сослаться на его непосредственный суперкласс, это можно сделать при помощи ключевого слова super.

Ключевое слово super имеет две общие формы.
Первую используют для вызова конструктора суперкласса, а вторую — для обращения к члену суперкласса, скрытому членом подкласса. Рассмотрим обе формы.

Использование ключевого слова super для вызова конструкторов суперкласса.

Подкласс может вызывать конструктор, определенный его суперклассом, с помощью следующей формы ключевого слова super.

Здесь список_аргументов определяет любые аргументы, требуемые конструктору в суперклассе. Вызов метода super() всегда должен быть первым оператором, выполняемым внутри конструктора подкласса.

В качестве иллюстрации использования метода super() рассмотрим следующий пример:

В этом примере конструктор BoxWeight() вызывает метод super() с аргументами w, h и d. Это приводит к вызову конструктора Box(), который инициализирует переменные width, height и depth, используя переданные ему значения соответствующих параметров.

Теперь класс BoxWeight не инициализирует эти значения самостоятельно. Ему нужно инициализировать только свое уникальное значение — weight. В результате при необходимости эти значения могут оставаться закрытыми значениями класса Box.

В приведенном примере метод super() был вызван с тремя аргументами.
Поскольку конструкторы могут быть перегруженными, метод super() можно вызывать, используя любую форму, определенную суперклассом.
Программа выполнит тот конструктор, который соответствует указанным аргументам.

В качестве примера приведем полную реализацию класса BoxWeight, которая предоставляет конструкторы для различных способов создания параллелепипедов.
В каждом случае метод super() вызывается с соответствующими аргументами.
Обратите внимание на то, что внутри класса Box его члены width, height и depth объявлены как закрытые.

Эта программа создает следующий вывод:
Объем myboxl равен 3000.0
Вес myboxl равен 34.3

Объем mybox2 равен 24.0
Вес mybox2 равен 0.07 6

Объем myclone равен 3000.0
Вес myclone равен 34.3

Объем mycube равен 27.0
Вес mycube равен 2.0

Обратите особое внимание на следующий конструктор в классе BoxWeight.

Обратите внимание на то, что метод super() выполняет передачу объекту
класса BoxWeight, а не класса Box. Тем не менее это все равно ведет к вызову конструктора Box(Box. ob).

Как уже было отмечено, переменную суперкласса можно использовать для ссылки на любой объект, унаследованный от этого класса.
Таким образом, объект класса BoxWeight можно передать конструктору Box().
Конечно, классу Box будут известны только его собственные члены.

Рассмотрим основные концепции применения метода super().

Когда подкласс вызывает метод super(), он вызывает конструктор своего непосредственного суперкласса. Таким образом, метод super() всегда ссылается на суперкласс, расположенный в иерархии непосредственно над вызывающим классом. Это справедливо даже в случае многоуровневой иерархии. Кроме того, метод super() всегда должен быть первым оператором, выполняемым внутри конструктора подкласса.

Второе применение ключевого слова super.
Вторая форма ключевого слова super действует подобно ключевому слову
this, за исключением того, что всегда ссылается на суперкласс подкласса, в котором она использована. Общая форма этого применения ключевого слова super имеет следующий вид:

Здесь член может быть методом либо переменной экземпляра.
Вторая форма применения ключевого слова super наиболее подходит в тех
ситуациях, когда имена членов подкласса скрывают члены суперкласса с такими же именами. Рассмотрим следующую простую иерархию классов.

Эта программа отображает следующее:
i в суперклассе: 1
i в подклассе: 2

Хотя переменная экземпляра i в классе В скрывает переменную i в классе А, ключевое слово super позволяет получить доступ к переменной i, определенной в суперклассе. Как вы увидите, ключевое слово super можно использовать также для вызова методов, которые скрываются подклассом.

Источник

Super() в Java

ОТВЕТЫ

Ответ 1

super() вызывает родительский конструктор без аргументов.

Также он может использоваться для вызова методов из родителя. То есть super.aMethod()

Дополнительная информация и учебник здесь

Ответ 2

Проверьте разницу между программой 1 и 2. Здесь программа 2 подтверждает наше первое утверждение super() в Java.

Программа 1

Теперь проверьте программу 2 и попытайтесь выяснить основное отличие.

Программа 2

В программе 1 вывод был только производного класса. Не удалось вывести переменную ни базового класса, ни родительского класса. Но в программе 2 мы использовали super() с переменной a при печати ее вывода, и вместо того, чтобы печатать значение переменной a производного класса, она печатала значение переменной a базового класса. Таким образом, это доказывает, что super() используется для вызова непосредственного родителя.

Хорошо, теперь проверьте разницу между программой 3 и программой 4.

Программа 3

Программа 4

Здесь мы получаем два выхода, 100 и 200. Когда вызывается функция Show() производного класса, она сначала вызывает функцию Show() родительского класса, потому что внутри функции Show() производного класса мы вызвал функцию Show() родительского класса, поместив ключевое слово super перед именем функции.

Ответ 3

Да. super(. ) вызовет конструктор суперкласса.

Что такое super в java. Смотреть фото Что такое super в java. Смотреть картинку Что такое super в java. Картинка про Что такое super в java. Фото Что такое super в java

Ответ 4

Используется ли super() для вызова родительского конструктора?

Ответ 5

Да, super() (строчный) вызывает конструктор родительского класса. Вы можете включить аргументы: super(foo, bar)

Быстрый google для «Java super» приводит к this

Ответ 6

Ответ 7

Это правильно. Супер используется для вызова родительского конструктора. Итак, предположим, что у вас есть такой блок кода

Затем вы можете присвоить значение переменной-члену n.

Ответ 8

Если ваш метод переопределяет один из его методов суперкласса, вы можете вызвать переопределенный метод с помощью ключевого слова super. Вы также можете использовать супер, чтобы ссылаться на скрытое поле (хотя скрывать поля не рекомендуется). Рассмотрим этот класс, Суперкласс:

Вот подкласс подкласса Subclass, который переопределяет printMethod():

Внутри подкласса простое имя printMethod() относится к объявлению в подклассе, которое переопределяет значение в суперклассе. Итак, чтобы ссылаться на printMethod(), унаследованный от Superclass, Subclass должен использовать квалифицированное имя, используя super, как показано. Компиляция и выполнение подкласса печатает следующее:

Отпечатано в суперклассе. Отпечатано в подклассе Конструкторы подклассов

В следующем примере показано, как использовать ключевое слово super для вызова конструктора суперкласса. Вспомните пример велосипеда, что MountainBike является подклассом Bicycle. Вот конструктор MountainBike (подкласс), который вызывает конструктор суперкласса, а затем добавляет собственный код инициализации:

Вызов конструктора суперкласса должен быть первой строкой в ​​конструкторе подкласса.

Синтаксис для вызова конструктора суперкласса

супер();
или: super (список параметров); С super() вызывается конструктор без аргументов суперкласса. С супер (список параметров) вызывается конструктор суперкласса с соответствующим списком параметров.

Ответ 9

Я видел все ответы. Но все забыли упомянуть один очень важный момент:

super() следует вызывать или использовать в первой строке конструктора.

Ответ 10

Просто супер(); один будет вызывать конструктор по умолчанию, если он существует в классе суперкласса. Но вы должны явно написать конструктор по умолчанию самостоятельно. Если вы не используете Java, вы создадите один для вас без каких-либо реализаций, сохраните super();, ссылаясь на универсальный объект Суперкласса, и вы не можете вызвать его в подклассе.

Ответ 11

Например, при автоматизации селена у вас есть объект PageObject, который может использовать его родительский конструктор следующим образом:

Ответ 12

Конструкторы
В конструкторе вы можете использовать его без точки для вызова другого конструктора. super вызывает конструктор в суперклассе; this вызывает конструктор в этом классе :

super полезен, если суперкласс должен инициализировать себя. this полезно, чтобы вы могли написать весь жесткий код инициализации только один раз в одном из конструкторов и вызвать его из всех других, гораздо более простых для записи конструкторов.

Методы
В любом методе вы можете использовать его с точкой для вызова другого метода. super.method() вызывает метод в суперклассе; this.method() вызывает метод в этом классе :

super полезен в определенном сценарии: если ваш класс имеет тот же метод, что и ваш суперкласс, Java предположит, что вы хотите его в своем классе; super позволяет вместо этого запрашивать метод суперкласса. this полезен только как способ сделать ваш код более читаемым.

Ответ 13

каждый конструктор имеет первый оператор как вызов super() или this(), по умолчанию вызов super()

Ответ 14

Ключевое слово супер может использоваться для вызова конструктора суперкласса и ссылки на член суперкласса

Когда вы вызываете super() с помощью правильных аргументов, мы вызываем конструктор Box, который инициализирует переменные ширина, высота и глубина, ссылаясь на нее, используя значения соответствующих параметров. Остается только инициализировать свой вес добавленной стоимости. В случае необходимости вы можете сделать теперь переменные класса Box как private. Поместите в поля частного модификатора класса Box и убедитесь, что вы можете получить к ним доступ без каких-либо проблем.

В суперклассе может быть несколько конструкторов с перегруженными версиями, поэтому вы можете вызвать метод super() с разными параметрами. Программа выполнит конструктор, который соответствует указанным аргументам.

Ответ 15

Отметьте здесь для дальнейшего объяснения.

Ответ 16

Как уже говорилось, внутри конструктора по умолчанию есть неявный super(), вызываемый в первой строке конструктора.

Этот super() автоматически вызывает цепочку конструкторов, начиная с верхней части иерархии классов, и перемещается вниз по иерархии.

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

Ответ 17

Супер ключевое слово в java

Зачем использовать ключевое слово super в java?

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

Супер ключевое слово на уровне метода?

Супер ключевое слово также используется для вызова метода родительского класса. Супер ключевое слово должно использоваться в случае переопределения метода.

При использовании ключевого слова Super на уровне метода?

Использование ключевого слова Super, когда имя метода базового класса и имя метода производного класса имеют одинаковое имя.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *