>Java >Java시작하기 >자바 다형성을 이해하는 방법

자바 다형성을 이해하는 방법

青灯夜游
青灯夜游원래의
2021-04-13 17:55:396544검색

Java에서 다형성은 동일한 동작이 여러 가지 다른 표현이나 형태를 가질 수 있는 능력입니다. 다형성은 동일한 인터페이스로, 서로 다른 인스턴스를 사용하여 서로 다른 작업을 수행합니다. 다형성의 장점: 1. 유형 간의 결합 관계 제거, 3. 확장성, 5. 유연성,

자바 다형성을 이해하는 방법

이 튜토리얼의 운영 환경: windows7 시스템, java8 버전, DELL G3 컴퓨터.

다형성 개요

1. 다형성은 캡슐화 및 상속에 이어 객체지향의 세 번째 주요 기능입니다.

2. 다형성현실적인 의미이해:

  • 실제 사물은 종종 다양한 형태를 취합니다. 예를 들어 학생은 일종의 인간이고 특정 동급생 Zhang San은 둘 다 학생 입니다. 사람두 가지 형태로 나타납니다.                                                           

    객체 지향 언어인 Java는 사물의 여러 형태를 설명할 수도 있습니다. Student 클래스가 Person 클래스를 상속하는 경우 Student 개체는 Student이자 Person입니다.
  • 3. 다형성은
  • 부모 클래스 참조 변수가 하위 클래스 객체를 가리킬 수 있다는 사실에 반영됩니다
.

4. 전제조건 : 자녀-부모 관계가 있어야 합니다.

참고: 다형성 부모 클래스 참조 변수를 사용하여 메서드를 호출하면 하위 클래스의 재정의된 메서드가 호출됩니다.

5. 다형성의 정의 및 사용 형식

정의 형식: 상위 클래스 유형 변수 이름 = 새 하위 클래스 유형()

6. 이해:

父类类型 变量名=new 子类类型();

6、理解:

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作。

7、多态的优点

  • 消除类型之间的耦合关系

  • 可替换性

  • 可扩充性

  • 接口性

  • 灵活性

  • 简化性

8、多态存在的三个必要条件

  • 继承

  • 重写

  • 父类引用指向子类对象:Parent p = new Child();다형성은 동일합니다. 여러 가지 다른 표현이나 형태를 갖는 행동.

  • 다형성은 서로 다른 인스턴스를 사용하여 서로 다른 작업을 수행하는 동일한 인터페이스입니다. polymorphism

    7. 유연성

    Simplification

    8. 다형성이 존재하는 데 필요한 세 가지 조건

      상속

      Rewrite

      부모 클래스 참조는 하위 클래스 객체를 가리킵니다: Parent p = new Child();

      • 다형성 멤버의 특성
      1. 다형성 멤버 변수: 컴파일하고 실행할 때 다음을 살펴보세요. left side

      Fu f=new Zi();
      System.out.println(f.num);//f是Fu中的值,只能取到父中的值

      2. 다형성 멤버 메소드: 컴파일하고 실행할 때는 왼쪽을 보고, 실행할 때는 오른쪽을 보세요

      Fu f1=new Zi();
      System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。

        instanceofkeyword
      함수: 객체가 속한 객체인지 확인하는 데 사용됩니다. 특정 데이터 유형.

      참고: 반환 유형은 Boolean입니다.

      사용 사례:

              Fu f1=new Zi();
              Fu f2=new Son();
              if(f1 instanceof Zi){
                  System.out.println("f1是Zi的类型");
              }
              else{
                  System.out.println("f1是Son的类型");
              }
      다형성 변환

      다형성 변환은 상향 변환과 하향 변환의 두 가지 유형으로 나뉩니다.상향 변환: 다형성 자체가 상향 변환입니다. 전환 과정格 사용 형식: 상위 유형 변수 이름의 유형 = 새 하위 유형()에 해당하는 작업을 완료할 수 있습니다.个 하향 변환: 상향 변환된 하위 클래스 객체는 필수 유형 변환 형식을 사용하여 하위 클래스에 대한 상위 참조 유형을 다양한 유형으로 변환할 수 있습니다. 유형) 상위 클래스 유형의 변수

      적용 가능한 시나리오: 서브클래스 고유의 기능을 사용하고 싶을 때.

      다형성 사례:

      예제 1: (다형성을 이해하려면 이 사례에 집중하세요

      🎜)🎜
      package day0524;
      
      public class demo04 {
          public static void main(String[] args) {
              People p=new Stu();
              p.eat();
              //调用特有的方法
              Stu s=(Stu)p;
              s.study();
              //((Stu) p).study();
          }
      }
      class People{
          public void eat(){
              System.out.println("吃饭");
          }
      }
      class Stu extends People{
          @Override
          public void eat(){
              System.out.println("吃水煮肉片");
          }
          public void study(){
              System.out.println("好好学习");
          }
      }
      class Teachers extends People{
          @Override
          public void eat(){
              System.out.println("吃樱桃");
          }
          public void teach(){
              System.out.println("认真授课");
          }
      }
      🎜예제 2:🎜🎜프로젝트를 실행한 결과는 무엇인가요? 🎜
      package day0524;
      public class demo1 {
          public static void main(String[] args) {
              A a=new A();
              a.show();
              B b=new B();
              b.show();
          }
      }
      class A{
          public void show(){
              show2();
          }
          public void show2(){
              System.out.println("A");
          }
      }
      class B extends A{
          public void show2(){
              System.out.println("B");
          }
      }
      class C extends B{
          public void show(){
              super.show();
          }
          public void show2(){
              System.out.println("C");
          }
      }
      🎜정답: A B🎜🎜관련 영상 튜토리얼 추천: 🎜Java 영상 튜토리얼🎜🎜

    위 내용은 자바 다형성을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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