Перегрузка: несколько функций с одинаковым именем, одинаковым именем метода, но разными параметрами.
Примечание. 1. Разные параметры означают, что существует хотя бы одно различие в типе параметра, количестве параметров и порядке параметров.
2. Возвращаемые значения, исключения и модификаторы доступа не могут использоваться в качестве условий для перегрузки (потому что при анонимных вызовах возникнет неоднозначность, например: void a() и int a(), если вызывается a(), возникнет неоднозначность)
3.Метод main также можно перегрузить.
Переопределить: подкласс перезаписывает метод родительского класса, требуя, чтобы имя метода и тип параметра были точно такими же (параметры не могут быть подклассами), возвращаемое значение и исключение были меньше или такими же, как у родительского класса (это то есть они являются подклассами родительского класса), а модификаторы доступа меньше, чем у родительского класса. Родительский класс больше или такой же.
Два одинаковых, два маленьких и один большой
Примечание. Методы экземпляра подкласса не могут переопределять статические методы родительского класса; статические методы подкласса не могут переопределять методы экземпляра родительского класса (во время компиляции возникает ошибка).
Скрытый: если родительский класс и подкласс имеют атрибуты или методы с одинаковым именем, атрибут или метод родительского класса с тем же именем отсутствует по форме, но фактически все еще существует.
Примечание. При сокрытии независимо от класса и типа объявления будут вызываться свойства или методы соответствующего класса, а динамическое связывание не произойдет.
Существует только одна форма сокрытия метода, то есть один и тот же статический метод существует в родительском классе и подклассе.
Свойства можно только скрыть, но не перезаписать.
Переменные экземпляра/статические переменные подкласса могут скрывать переменные экземпляра/статические переменные родительского класса. Таким образом, переменные могут быть перекрестно скрыты.
Разница между сокрытием и прикрытием:
Скрытые атрибуты: после присоединения подкласса к родительскому классу осуществляется доступ к атрибутам родительского класса.
Переопределенный метод после принудительного преобразования подкласса в родительский класс по-прежнему вызывает метод самого подкласса.
Поскольку покрытие динамически привязано и подчиняется RTTI (идентификация типа во время выполнения, проверка типа во время выполнения), сокрытие не подлежит RTTI. Таким образом, RTTI предназначен только для покрытия, а не для сокрытия.
Особые обстоятельства:
1. Свойства, измененные финалом, можно скрыть, но их нельзя присвоить, то есть им нельзя присвоить знак =. В сети сказано, что финальные свойства не могут быть изменены, потому что после переменной ссылочного типа. модифицируется с помощью Final, его просто нельзя изменить. Указывает на другие объекты, но может изменить свое собственное значение. Его можно проверить с помощью ArrayList. Атрибут Final можно инициализировать во время выполнения, но должен появиться оператор инициализации.
2. Окончательно измененные методы не могут быть переопределены и могут быть перегружены.
3. Окончательно модифицированные классы не могут быть унаследованы.
4. Приватный метод неявно добавляет Final