Программирование на Java: Руководство для опытных разработчиков - страница 4




Пример класса и объекта


Давайте рассмотрим простой пример. Предположим, мы хотим создать класс "Автомобиль", который имеет свойства "марка", "модель" и "год выпуска", а также метод "едет". Мы можем "Автомобиль" следующим образом:


```java


public class Автомобиль {


private String марка;


private String модель;


private int годВыпуска;


public Автомобиль(String марка, String модель, int годВыпуска) {


this.марка = марка;


this.модель = модель;


this.годВыпуска = годВыпуска;


}


public void едет() {


System.out.println("Автомобиль едет!");


}


}


```


Теперь мы можем создать объект "моиАвтомобиль" на основе класса "Автомобиль":


```java


Автомобиль моиАвтомобиль = new Автомобиль("Toyota", "Camry", 2015);


```


Объект "моиАвтомобиль" имеет свои собственные значения переменных "марка", "модель" и "год выпуска", а также метод "едет", который мы можем вызвать:


```java


моиАвтомобиль.едет(); // Вывод: Автомобиль едет!


```


Наследование и полиморфизм


Классы и объекты также позволяют реализовать наследование полиморфизм. Наследование позволяет создавать новые классы на основе существующих, а полиморфизм объектам иметь разные формы поведение в зависимости от контекста.


Заключение


В этой главе мы рассмотрели основы классов и объектов в Java. Мы научились создавать классы объекты, а также поняли, как они связаны между собой. следующей рассмотрим более подробно наследование полиморфизм, другие важные аспекты ООП.


3.2. Наследование и полиморфизм


В предыдущей главе мы рассмотрели основы объектно-ориентированного программирования (ООП) и познакомились с концепцией классов объектов. Теперь перейдем к двум фундаментальным понятиям ООП: наследованию полиморфизму.


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


Наследование – это механизм, позволяющий создавать новые классы на основе существующих. Идея наследования заключается в том, что новый класс (подкласс) может наследовать свойства и поведение от существующего класса (суперкласса). Это позволяет избежать дублирования кода более иерархическую структуру классов.


В Java наследование реализуется с помощью ключевого слова `extends`. Например:


```java


public class Animal {


public void sound() {


System.out.println("Животное издает звук");


}


}


public class Dog extends Animal {


public void sound() {


System.out.println("Собака лает");


}


}


```


В этом примере класс `Dog` наследует от класса `Animal` и переопределяет метод `sound()`. Теперь мы можем создать объект вызвать `sound()`, который будет выводить сообщение "Собака лает".


Полиморфизм


Полиморфизм – это способность объекта принимать разные формы в зависимости от контекста. В Java полиморфизм реализуется с помощью методов, которые могут быть переопределены подклассах.


Полиморфизм бывает двух видов: статический и динамический. Статический полиморфизм происходит при компиляции, когда компилятор определяет, какой метод вызвать в зависимости от типа объекта. Динамический во время выполнения, JVM


В Java полиморфизм реализуется с помощью методов, которые объявлены в суперклассе и переопределены подклассах. Например:


```java


public class Animal {


public void sound() {


System.out.println("Животное издает звук");


}


}


public class Dog extends Animal {


public void sound() {


System.out.println("Собака лает");


}


}


public class Cat extends Animal {


public void sound() {


System.out.println("Кошка мяукает");


}


}


public class Main {


public static void main(String[] args) {


Animal animal = new Dog();


animal.sound(); // Выводит "Собака лает"