08.09.26
This commit is contained in:
@@ -49,4 +49,15 @@ class C extends A {
|
||||
## Сигнатура метода при переопределении
|
||||
[[Функции#Сигнатура|Сигнатура]] должна совпадать, при этом имена параметров, как и положено, могут быть изменены
|
||||
## Аннотация @Override
|
||||
При переопределении можно использовать аннотацию `@Override` - компилятор проверит, правильно ли вы переопределяете метод (сигнатуру, модификаторы)
|
||||
При переопределении можно использовать аннотацию `@Override` - компилятор проверит, правильно ли вы переопределяете метод (сигнатуру, модификаторы)
|
||||
## Тип ошибки при переопределении
|
||||
Если родительский метод выбрасывал [[Система исключений|ошибку]] через `throws`, то в переопределяемом методе можно сужать тип ошибки (указывать наследников)
|
||||
```Java
|
||||
class A {
|
||||
protected void method() throws Exception {}
|
||||
}
|
||||
class B extends A {
|
||||
@Override
|
||||
public void method() throws IOException {}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user