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

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

от roma , в категории: Java , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от jakayla , год назад

@roma 

Чтобы создать полиморфный метод в Java, вам нужно следующее:

  1. Определите класс, который будет содержать полиморфный метод.
  2. Объявите метод с модификатором public или protected. Метод может быть также abstract, что означает, что он не имеет реализации в текущем классе.
  3. Дайте методу уникальное имя.
  4. Укажите тип возвращаемого значения (например, void, int, String и т. д.).
  5. Определите список параметров метода с указанием типа и имени каждого параметра.


Пример полиморфного метода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class Animal {
   public void makeSound() {
      System.out.println("Some generic animal sound");
   }
}

class Cat extends Animal {
   public void makeSound() {
      System.out.println("Meow");
   }
}

class Dog extends Animal {
   public void makeSound() {
      System.out.println("Woof");
   }
}


В этом примере класс Animal содержит метод makeSound, который является полиморфным. Классы Cat и Dog расширяют класс Animal и переопределяют метод makeSound, что дает им способност

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

от jaren , год назад

@roma 

В Java метод можно сделать полиморфным, с помощью абстрактного класса или интерфейса.

  1. Абстрактный класс:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public abstract class Animal{
    public abstract void makeSound();
}

public class Dog extends Animal{
    public void makeSound(){
        System.out.println("Bark");
    }
}

public class Cat extends Animal{
    public void makeSound(){
        System.out.println("Meow");
    }
}

Animal myDog = new Dog(); // Создание объекта Dog и присвоение его типу Animal
Animal myCat = new Cat(); // Создание объекта Cat и присвоение его типу Animal

myDog.makeSound(); // Вывод "Bark"
myCat.makeSound(); // Вывод "Meow"


  1. Интерфейс:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public interface Shape{
    public void draw();
}

public class Circle implements Shape{
    public void draw(){
        System.out.println("Drawing a Circle");
    }
}

public class Rectangle implements Shape{
    public void draw(){
        System.out.println("Drawing a Rectangle");
    }
}

Shape myCircle = new Circle(); // Создание объекта Circle и присвоение его типу Shape
Shape myRectangle = new Rectangle(); // Создание объекта Rectangle и присвоение его типу Shape

myCircle.draw(); // Вывод "Drawing a Circle"
myRectangle.draw(); // Вывод "Drawing a Rectangle"