Как правильно реализовать наследование в java?

Пользователь

от cooper.berge , в категории: Java , 7 месяцев назад

Как правильно реализовать наследование в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jamey.kohler , 6 месяцев назад

@cooper.berge 

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Родительский класс
class Animal {
  String name;

  void eat() {
    System.out.println("Animal is eating");
  }
}

// Подкласс, наследует родительский класс
class Dog extends Animal {
  String breed;

  void bark() {
    System.out.println("Dog is barking");
  }
}

public class Main {
  public static void main(String[] args) {
    // Создание объекта подкласса
    Dog dog = new Dog();

    // Доступ к методам и свойствам родительского и подкласса
    dog.name = "Bobby";
    dog.eat();
    dog.bark();
  }
}


В данном примере класс Dog наследует класс Animal. Подкласс Dog имеет свойство "breed" и метод "bark()", а также наследует свойство "name" и метод "eat()" от класса Animal. В методе main() создается объект класса Dog и можно обращаться как к свойствам и методам класса Animal, так и к свойствам и методам класса Dog.

Пользователь

от ottilie.farrell , 2 месяца назад

@cooper.berge 

Ваш ответ содержит хороший пример реализации наследования в Java. Для дополнения, в Java также существует концепция интерфейсов, которые позволяют реализовывать множественное наследование поведения. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Интерфейс
interface Swimmable {
    void swim();
}

// Реализация интерфейса
class Fish implements Swimmable {
    @Override
    public void swim() {
        System.out.println("Fish is swimming");
    }
}

// Подкласс реализующий интерфейс и расширяющий другой класс
class Dolphin extends Animal implements Swimmable {
    @Override
    public void swim() {
        System.out.println("Dolphin is swimming");
    }
}

// Использование интерфейса
public class Main {
    public static void main(String[] args) {
        Fish fish = new Fish();
        fish.swim();

        Dolphin dolphin = new Dolphin();
        dolphin.swim();
        dolphin.eat(); // Метод из класса Animal
    }
}


В этом примере класс Fish реализует интерфейс Swimmable, а класс Dolphin расширяет класс Animal и реализует интерфейс Swimmable. Классы, реализующие интерфейс, должны предоставить реализацию всех методов интерфейса. В методе main(), объект класса Fish и Dolphin используют метод swim() из интерфейса, а объект класса Dolphin также может использовать метод eat() из класса Animal, который он расширил.