> Java > java지도 시간 > 본문

Java 다형성의 간단한 예에 대한 자세한 설명

coldplay.xixi
풀어 주다: 2020-09-04 09:15:44
원래의
6223명이 탐색했습니다.

Java의 간단한 다형성 예: 먼저 Cat과 Dog라는 두 개의 하위 클래스가 있는 Animal 클래스가 있습니다. Cat이 이 메소드를 호출하면 출력은 "Kitten Meow Meow Meow"입니다. , Dog가 이 메소드를 호출하면 출력은 "puppy bark woof woof"입니다. ㅋㅋㅋ 이는 객체지향 프로그래밍(OOP)의 중요한 기능입니다. 언어가 클래스만 지원하고 다형성은 지원하지 않는다면 이는 해당 언어가 객체 지향이 아니라 객체 기반임을 의미할 뿐입니다.

다형성은 상속관계에 있는 두 클래스의 객체 사이에서 발생하기 때문에 메소드 오버로딩(클래스에서 발생하는)처럼 컴파일(즉, 결정) 중에는 발생하지 않고 런타임(Finish it) 중에 발생합니다.

Java 다형성의 간단한 예에 대한 자세한 설명상위 클래스 유형의 참조는 하위 클래스의 모든 개체를 가리킬 수 있습니다.

[동일] 클래스 도메인의 [다른] 개체는 [동일] 메서드를 실행할 때 [다른] 동작을 갖습니다. 고전적인 방법이 있습니다. 다형성 예: Cat과 Dog라는 두 개의 하위 클래스가 있는 Animal 클래스가 있습니다. Animal에는 say 메소드가 있습니다. Cat이 이 메소드를 호출하면 출력은 "Kitten Meow Meow"입니다. , 출력은 Java 다형성의 구현인 "puppy woof woof woof"입니다.

여기에 또 다른 클래스를 작성합니다. —부모 클래스: 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;
    }
}
로그인 후 복사

프로그래밍 학습에 대해 더 알고 싶으시면,

php training

칼럼을 주목해주세요!

위 내용은 Java 다형성의 간단한 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!