Найти тему
JavaExplorers

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

Наследование - это принцип ООП, который позволяет создавать новый класс на основе уже существующего, наследуя его свойства и методы. Класс, от которого происходит наследование, называется суперклассом или родительским классом, а класс, который наследует свойства и методы, называется подклассом или дочерним классом.

Примеры использования наследования:

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

public class Shape {
protected double area;
protected double perimeter;

public double getArea() {
return area;
}

public double getPerimeter() {
return perimeter;
}
}

public class Circle extends Shape {
private double radius;

public Circle(double radius) {
this.radius = radius;
area = Math.PI * radius * radius;
perimeter = 2 * Math.PI * radius;
}

public double getRadius() {
return radius;
}
}

public class Rectangle extends Shape {
private double length;
private double width;

public Rectangle(double length, double width) {
this.length = length;
this.width = width;
area = length * width;
perimeter = 2 * (length + width);
}

public double getLength() {
return length;
}

public double getWidth() {
return width;
}
}

2. Класс, представляющий животное, может быть использован для создания конкретных видов животных, таких как кошки, собаки, птицы и т.д. Классы, представляющие конкретные виды животных, могут наследовать свойства и методы от родительского класса, таких как движение, питание и размножение.

public class Animal {
protected String species;
protected String food;

public void move() {
System.out.println("The " + species + " is moving");
}

public void eat() {
System.out.println("The " + species + " is eating " + food);
}

public void reproduce() {
System.out.println("The " + species + " is reproducing");
}
}

public class Cat extends Animal {
public Cat() {
species = "cat";
food = "cat food";
}

public void meow() {
System.out.println("The cat is meowing");
}
}

public class Dog extends Animal {
public Dog() {
species = "dog";
food = "dog food";
}

public void bark() {
System.out.println("The dog is barking");
}
}

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

public class Employee {
private String name;
private double salary;
private String department;

public Employee(String name, double salary, String department) {
this.name = name;
this.salary = salary;
this.department = department;
}

public String getName() {
return name;
}

public double getSalary() {
return salary;
}

public String getDepartment() {
return department;
}

public void work() {
System.out.println(name + " is working");
}
}

public class Manager extends Employee {
public Manager(String name, double salary, String department) {
super(name, salary, department);
}

public void hireEmployee() {
System.out.println(getName() + " is hiring a new employee");
}
}

public class Programmer extends Employee {
public Programmer(String name, double salary, String department) {
super(name, salary, department);
}

public void writeCode() {
System.out.println(getName() + " is writing code");
}
}

Таким образом, наследование позволяет повторно использовать код, избегать дублирования кода, упрощать создание новых классов и улучшать структуру программы.

Аналог желудочного сока Бальзам Болотова для улучшения ЖКТ и жизненной силы.