>  기사  >  Java  >  자바 다형성이란 무엇입니까?

자바 다형성이란 무엇입니까?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-11-14 16:20:306282검색

자바 다형성이란 무엇입니까?

다형성은 동일한 행동이 여러 가지 다른 표현이나 형태를 가질 수 있는 능력입니다. 다형성은 그림과 같이 서로 다른 인스턴스를 사용하여 서로 다른 작업을 수행하는 동일한 인터페이스입니다.

자바 다형성이란 무엇입니까?

다형성은 객체의 여러 표현을 구현한 것입니다.

现实中,比如我们按下 F1 键这个动作:
·如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
·如果当前在 Word 下弹出的就是 Word 帮助;
·在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果。
的 다형성의 장점

· 1. 유형 간의 결합 관계 제거

· ·

4. ·

5. 유연성

·

6. 단순성

다형성이 존재하는 세 가지 필수 조건

· 상속

·

다시 쓰기

·

부모님 클래스 참조는 하위 클래스 객체를 가리킵니다.

예:

Parent p = new Child();
다형성을 사용하여 메서드를 호출할 때 먼저 해당 메서드가 상위 클래스에 있는지 확인하고, 없으면 컴파일 오류입니다. 그런 다음 다음의 메서드를 호출합니다. 하위 클래스의 이름이 동일합니다.

다형성의 이점: 프로그램을 잘 확장할 수 있고 모든 클래스의 객체를 보편적으로 처리할 수 있습니다.

다음은 다형성 인스턴스의 데모입니다. 자세한 설명은 주석을 참조하세요. Test.java 파일 코드:

public class Test {
    public static void main(String[] args) {
      show(new Cat());  // 以 Cat 对象调用 show 方法
      show(new Dog());  // 以 Dog 对象调用 show 方法
                
      Animal a = new Cat();  // 向上转型  
      a.eat();               // 调用的是 Cat 的 eat
      Cat c = (Cat)a;        // 向下转型  
      c.work();        // 调用的是 Cat 的 work
  }  
            
    public static void show(Animal a)  {
      a.eat();  
        // 类型判断
        if (a instanceof Cat)  {  // 猫做的事情 
            Cat c = (Cat)a;  
            c.work();  
        } else if (a instanceof Dog) { // 狗做的事情 
            Dog c = (Dog)a;  
            c.work();  
        }  
    }  
}
 
abstract class Animal {  
    abstract void eat();  
}  
  
class Cat extends Animal {  
    public void eat() {  
        System.out.println("吃鱼");  
    }  
    public void work() {  
        System.out.println("抓老鼠");  
    }  
}  
  
class Dog extends Animal {  
    public void eat() {  
        System.out.println("吃骨头");  
    }  
    public void work() {  
        System.out.println("看家");  
    }  
}

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠

php 중국 웹사이트, 대형 수많은 무료

Java 입문 튜토리얼

, 온라인 학습에 오신 것을 환영합니다!

위 내용은 자바 다형성이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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