Java에서 다형성 구현 메커니즘은 무엇입니까
Java에서 다형성을 구현하는 메커니즘은 상위 클래스 또는 인터페이스의 참조에 의존하여 하위 클래스를 가리키도록 함으로써 다양한 형태의 특성을 실현하는 것입니다. 객체 및 해당 상위 클래스의 참조 런타임 시 특정 인스턴스를 동적으로 가리킵니다. 참조의 메서드가 호출되면 참조 변수의 형식에 정의된 메서드에 따라 실행되지 않습니다. 특정 인스턴스의 메소드.
간단한 예
Person.java
import java.util.Scanner; public class Person { public int salary; public int allSalary(){ return 0; } public static void main(String[] args) { Person p = null; for (int n = 0; n < 3; n++) { @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); System.out.println("请输入一个1-3的数字:\n1 is Teacher\n2 is Scientis\n3 is Waiter"); int i = sc.nextInt(); //分别指向了不同的子类,输出的结果是不一样的 if (i == 1) { p = new Teacher(5000); System.out.println(p.allSalary()); } else if (i == 2) { p = new Scientist(5000); System.out.println(p.allSalary()); } else if (i == 3) { p = new Waiter(5000); System.out.println(p.allSalary()); } else { System.out.println("?\n请输入1-3"); } } } }
Scientist .java
public class Scientist extends Person{ public Scientist(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12+36500; System.out.print("五五开一年的工资:"); return aa; } }
Waiter.java
public class Waiter extends Person{ public Waiter(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12; System.out.print("服务员一年的工资:"); return aa; } }
Teacher .java
public class Teacher extends Person{ public Teacher(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12+3650; System.out.print("教师一年的工资:"); return aa; } }
권장 튜토리얼: "Java 튜토리얼 "
위 내용은 Java가 다형성을 구현하는 메커니즘은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!