Le mécanisme de surcharge en Java implémente le polymorphisme des paramètres, permettant aux méthodes du même nom de gérer différents types de paramètres. Les méthodes surchargées sont mises en correspondance en fonction des types de paramètres, avec la priorité suivante : types de correspondance exacte, types de conversion automatique et types de correspondance détendus. Dans le cas pratique, des méthodes surchargées pour calculer l'aire des rectangles et des cercles sont fournies, démontrant comment appeler des méthodes appropriées basées sur différentes entrées de forme.
En Java, la surcharge permet de définir plusieurs méthodes dans la même classe avec le même nom mais des paramètres différents. Cela permet d'utiliser le même nom de fonction pour gérer différents types ou nombres d'arguments.
La syntaxe d'une méthode surchargée est la suivante :
methodName(parameter1_type parameter1_name, parameter2_type parameter2_name, ...)
L'exemple suivant montre deux méthodes calculate
surchargées :
public class MyClass { public int calculate(int num1, int num2) { return num1 + num2; } public double calculate(double num1, double num2) { return num1 * num2; } }
Lorsqu'une méthode surchargée est appelée, Java fera correspondre les paramètres à l'approche appropriée :
Ce qui suit est un cas pratique démontrant comment utiliser les méthodes de surcharge pour gérer différents types et nombres de paramètres :
import java.util.Scanner; public class AreaCalculator { public double calculateArea(int length, int width) { return length * width; } public double calculateArea(int radius) { return Math.PI * radius * radius; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter shape (rectangle/circle): "); String shape = scanner.nextLine(); if (shape.equals("rectangle")) { System.out.print("Enter length: "); int length = scanner.nextInt(); System.out.print("Enter width: "); int width = scanner.nextInt(); AreaCalculator calculator = new AreaCalculator(); double area = calculator.calculateArea(length, width); System.out.println("Area of rectangle: " + area); } else if (shape.equals("circle")) { System.out.print("Enter radius: "); int radius = scanner.nextInt(); AreaCalculator calculator = new AreaCalculator(); double area = calculator.calculateArea(radius); System.out.println("Area of circle: " + area); } else { System.out.println("Invalid shape"); } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!