>Java >Java베이스 >Java가 다형성을 구현하는 메커니즘은 무엇입니까?

Java가 다형성을 구현하는 메커니즘은 무엇입니까?

Guanhui
Guanhui원래의
2020-06-01 10:59:495264검색

Java가 다형성을 구현하는 메커니즘은 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.