자바 튜토리얼

자바 홈 자바 소개 자바 시작하기 자바 구문 자바 주석 자바 변수 자바 데이터 유형 자바 타입 캐스팅 자바 연산자 자바 문자열 자바 수학 자바 부울 자바 If...Else 자바 스위치 자바 while 루프 자바 For 루프 자바 중단/계속 자바 배열

자바 메소드

자바 메소드 자바 메소드 매개변수 자바 메소드 오버로딩 자바 범위 자바 재귀

자바 클래스

자바 OOP 자바 클래스/객체 자바 클래스 속성 자바 클래스 메소드 자바 생성자 자바 수정자 자바 캡슐화 자바 패키지 / API 자바 상속 자바 다형성 자바 내부 클래스 자바 추상화 자바 인터페이스 자바 열거형 자바 사용자 입력 자바 날짜 자바 배열 목록 자바 링크드리스트 자바 해시맵 자바 해시셋 자바 반복자 자바 래퍼 클래스 자바 예외 자바 정규식 자바 스레드 자바 람다

자바 파일 처리

자바 파일 Java 파일 작성/쓰기 자바 읽기 파일 자바 삭제 파일

자바 방법

두 개의 숫자 더하기

자바 참조

자바 키워드 자바 문자열 메소드 자바 수학 메소드

자바 예제

자바 예제 자바 컴파일러 자바 연습 자바 퀴즈 자바 인증서


자바 다형성


자바 다형성

다형성은 "많은 형태"를 의미하며 상속에 의해 서로 연결된 많은 클래스가 있을 때 발생합니다.

이전 장에서 지정한 것처럼; 상속 을 통해 다른 클래스의 속성과 메서드를 상속할 수 있습니다. 다형성 은 이러한 방법을 사용하여 다른 작업을 수행합니다. 이를 통해 우리는 다양한 방식으로 단일 작업을 수행할 수 있습니다.

예를 들어 라는 Animal메서드가 있는 슈퍼클래스를 생각해 animalSound()보세요. 동물의 하위 클래스는 돼지, 고양이, 개, 새일 수 있습니다. 또한 동물 소리(돼지 울음소리, 고양이 야옹 소리 등)를 자체적으로 구현했습니다.

예시

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

상속 장 에서 우리 extends는 클래스에서 상속하기 위해 키워드를 사용 한다는 것을 기억하십시오 .

이제 Pig Dog개체 를 만들고 animalSound()둘 모두에 대해 메서드를 호출할 수 있습니다.

예시

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

class Main {
  public static void main(String[] args) {
    Animal myAnimal = new Animal();  // Create a Animal object
    Animal myPig = new Pig();  // Create a Pig object
    Animal myDog = new Dog();  // Create a Dog object
    myAnimal.animalSound();
    myPig.animalSound();
    myDog.animalSound();
  }
}

왜 그리고 언제 "상속"과 "다형성"을 사용해야 합니까?

- 코드 재사용성에 유용합니다. 새 클래스를 만들 때 기존 클래스의 속성과 메서드를 재사용합니다.