4лвл 6 лекция
Владислав, да, только во втором примере ты не переопределил метод, а перегрузил, так как поменял тип аргумента (должен быть тип Object)
вот нашел информацию по этому поводу
+++++++++++++++++++++
Распространенные ошибки при переопределении equals в Java
Вместо того, чтобы переопределять метод equals (Override) программист перегружает его (Overload)Синтаксис метода equals() в классе Object определен как public boolean equals(Object obj), но многие программисты ненароком перегружают метод: public boolean equals(Person obj) - вместо Object в качестве аргумента используют имя своего класса (напр. Person). Эту ошибку сложно обнаружить из-за static binding. Таким образом, если вы вызовите этот метод для объекта своего класса, то метод не просто скомпелируется, а даже сделает это корректно. Однако, если вы положите ваш объект в коллекцию, например ArrayList и вызовите метод contains(), работа которого основана на методе equals(), то метод contains не сможет обнаружить ваш объект.
++++++++++++++++++++++
Те что на прямых линиях это классы-адаптеры (pattern adapter) - используются для так сказать соединения разных типов данных (пишут char в byte и т. п.)
Те что на кольцах это классы-декораторы (pattern decorator) - берут наш объект и добавляют ему какое то свойство, возвращая по сути тот же объект, того же типа (буферезируют, пакуют данные, выводят что то в Log-file во время работы и т. д. )
Вся лекция в двух словах, ребят:
1. Если переменная помечена словом "static", то она общая для всех объектов, что будут созданы.(Что-то вроде общей ячейки в банке, из которой все могут брать что-то, и все могут туда ложить что-то).
2. THIS используйте, когда имена вашей переменной в классе и переменной в методе совпадают. Не заморачивайтесь, просто помните - вызов переменной в методе - ее имя. Вызов переменной в классе - this. + ее имя. Ничего сложного, пацаны :D.
3. Если видишь что в метод объявлен СТАТИЧЕСКИМ, то про this ЗАБУДЬТЕ сразу!!1 Когда переменная или класс статитический, то он вызывается ClassName.methodName(). (Типа у вас есть класс Cat, а внутри - метод catCount(). Так вот чтоб его вызвать, юзайте Cat.catCount() . )
4. Короче: Нестатический метод - забей и юзай This. Если статический, то вместо this пишешь название его класса. Все.
Пока что это все, что вам нужно знать. Если есть вопросы - пишите в ЛС. Удачи, пацаны!