다형성은 상속관계에 있는 두 클래스의 객체 사이에서 발생하기 때문에 메소드 오버로딩(클래스에서 발생하는)처럼 컴파일(즉, 결정) 중에는 발생하지 않고 런타임(Finish it) 중에 발생합니다.Java의 간단한 다형성 예: 먼저 Cat과 Dog라는 두 개의 하위 클래스가 있는 Animal 클래스가 있습니다. Cat이 이 메소드를 호출하면 출력은 "Kitten Meow Meow Meow"입니다. , Dog가 이 메소드를 호출하면 출력은 "puppy bark woof woof"입니다. ㅋㅋㅋ 이는 객체지향 프로그래밍(OOP)의 중요한 기능입니다. 언어가 클래스만 지원하고 다형성은 지원하지 않는다면 이는 해당 언어가 객체 지향이 아니라 객체 기반임을 의미할 뿐입니다.
상위 클래스 유형의 참조는 하위 클래스의 모든 개체를 가리킬 수 있습니다.
[동일] 클래스 도메인의 [다른] 개체는 [동일] 메서드를 실행할 때 [다른] 동작을 갖습니다. 고전적인 방법이 있습니다. 다형성 예: 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; } }
public class Waiter extends Person{ public Waiter(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12; System.out.print("服务员一年的工资:"); return aa; } }
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!