Наследование
Наследование - это механизм, позволяющий одному классу
(наследнику) перенимать поля и методы другого класса
(родителя). Для этого в объявлении класса-наследника
используется ключевое слово extends. В первом
параметре указывается имя класса-родителя, от которого
наследуются члены. Класс-наследник получает доступ ко
всем public и protected членам родителя,
а также может добавлять собственные поля и методы или
переопределять унаследованные.
Синтаксис
class Child extends Parent
{
// fields and methods
}
Пример
Давайте создадим класс-родитель Animal с методом
sound и класс-наследник Dog, который
наследует этот метод:
class Animal
{
public void sound()
{
System.out.println("Some sound");
}
}
class Dog extends Animal
{
}
public class Main
{
public static void main(String[] args)
{
Dog dog = new Dog();
dog.sound();
}
}
Результат выполнения кода:
"Some sound"
Пример
Наследник может переопределять методы родителя и добавлять
собственные. Давайте переопределим метод sound
и добавим метод wagTail:
class Animal
{
public void sound()
{
System.out.println("Some sound");
}
}
class Dog extends Animal
{
@Override
public void sound()
{
System.out.println("Woof");
}
public void wagTail()
{
System.out.println("Tail is wagging");
}
}
public class Main
{
public static void main(String[] args)
{
Dog dog = new Dog();
dog.sound();
dog.wagTail();
}
}
Результат выполнения кода:
"Woof"
"Tail is wagging"
Пример
Наследник может обращаться к членам родителя через
ключевое слово super. Давайте вызовем метод
родителя из переопределённого метода:
class Animal
{
public void sound()
{
System.out.println("Some sound");
}
}
class Dog extends Animal
{
@Override
public void sound()
{
super.sound();
System.out.println("Woof");
}
}
public class Main
{
public static void main(String[] args)
{
Dog dog = new Dog();
dog.sound();
}
}
Результат выполнения кода:
"Some sound"
"Woof"