23:43
Урок 9: Наследование и полиморфизм

Курс по программированию на Java

Урок 9: Наследование и полиморфизм

В этом уроке мы рассмотрим концепции наследования и полиморфизма в Java, которые являются основными принципами объектно-ориентированного программирования (ООП).

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

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

class Animal {
 void makeSound() {
 System.out.println("Животное издает звук");
 }
}

class Dog extends Animal {
 @Override
 void makeSound() {
 System.out.println("Собака лает");
 }
}

public class InheritanceExample {
 public static void main(String[] args) {
 Dog myDog = new Dog();
 myDog.makeSound(); // Выведет: Собака лает
 }
}

Результат выполнения

Собака лает

Полиморфизм

Полиморфизм позволяет использовать объект базового класса для обращения к объектам подклассов. Это позволяет писать более общий код. Пример:

class Cat extends Animal {
    @Override
    void makeSound() {
        System.out.println("Кошка мяукает");
     }
}

public class PolymorphismExample {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.makeSound(); // Выведет: Собака лает
 
        myAnimal = new Cat();
        myAnimal.makeSound(); // Выведет: Кошка мяукает
    }
}

Результат выполнения

Собака лает
Кошка мяукает

Упражнения

Упражнение 1: Наследование и переопределение методов

Создайте базовый класс Vehicle с методом move, который выводит "Транспортное средство движется". Затем создайте подкласс Car, который переопределяет метод move и выводит "Машина едет". Создайте объект класса Car и вызовите метод move.

Решение:

class Vehicle {
    void move() {
        System.out.println("Транспортное средство движется");
    }
}

class Car extends Vehicle {
    @Override
    void move() {
        System.out.println("Машина едет");
    }
}

public class VehicleTest {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.move(); // Выведет: Машина едет
    }
}

Объяснение: Мы создали базовый класс Vehicle и переопределили его метод move в классе Car. Затем создали объект myCar и вызвали метод move, который вывел "Машина едет".

Упражнение 2: Полиморфизм и массив объектов

Создайте базовый класс Shape с методом draw, который выводит "Рисование фигуры". Создайте подклассы Circle и Square, которые переопределяют метод draw и выводят "Рисование круга" и "Рисование квадрата" соответственно. Создайте массив объектов Shape и вызовите метод draw для каждого элемента массива.

Решение:

class Shape {
    void draw() {
        System.out.println("Рисование фигуры");
    }
}

class Circle extends Shape {
    @Override
    void draw() {
        System.out.println("Рисование круга");
    }
}

class Square extends Shape {
    @Override
    void draw() {
        System.out.println("Рисование квадрата");
    }
}

public class ShapeTest {
    public static void main(String[] args) {
        Shape[] shapes = {new Circle(), new Square(), new Shape()};
 
        for (Shape shape : shapes) {
            shape.draw();
        }
    }
}

Объяснение: Мы создали базовый класс Shape и переопределили его метод draw в классах Circle и Square. Затем создали массив объектов Shape и вызвали метод draw для каждого элемента массива, что привело к полиморфному поведению.

Категория: Java | Просмотров: 83 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: