생활코딩 - Java(다형성)

2024. 4. 4. 15:41·Java & Spring/Java

□ 메소드와 다형성

다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다.

 같은 메소드 명 'a'지만 매개변수 타입이 int와 String차이로

아래 o.a(1);와 o.a("one");가 오류없이 작동한다.

 

□ 클래스와 다형성

위 코드에서  obj.y();은 오류가 발생한다.

그이유는 A obj = new B(); 에서 클래스 B를 new를 통해 인스턴스화 하여

변수 obj에 담을 때 타입을 클래스 A로 정의했기 때문이다.

클래스 A에는 메소드 y가 정의되지 않았기 때문에 오류가 발생한다.

 

그러나 하위 클래스에서 메소드를 오버라이딩 하게되면 해당 메소드가 호출이된다.

위 예제에서 System.out.println(obj.x()); , System.out.println(obj2.x());  두개의 결과값은

오버라이딩된 "B.x"와 "B2.x"를 출력하게된다.

 

□ 인터페이스와 다형성

 

 

출처 : 생활코딩 유튜브 : 

https://www.youtube.com/watch?v=WijVClKt5Z8&list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck&index=115

'Java & Spring > Java' 카테고리의 다른 글

생활코딩 - Java(Object 클래스)  (0) 2024.04.16
생활코딩 - Java(예외 Exception)  (0) 2024.04.15
생활코딩 - Java(abstract,final,interface)  (0) 2024.04.03
생활코딩 - Java(접근 제어자)  (0) 2024.04.02
생활코딩 - Java(유효범위)  (0) 2024.03.26
'Java & Spring/Java' 카테고리의 다른 글
  • 생활코딩 - Java(Object 클래스)
  • 생활코딩 - Java(예외 Exception)
  • 생활코딩 - Java(abstract,final,interface)
  • 생활코딩 - Java(접근 제어자)
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java 세수의합
    Java this
    Java 생성자
    java enhance switch
    java super
    java two-pointer
    java 메서드
    프로그래머스 java 기초트레이닝
    java
    java arrays.copyofrnage()
    java기초
    자료구조
    java 제어자
    데이터 크기
    java 에라토스테네스의 체
    java 멤버
    데이터 타입
    java 유클리드 호제법
    프로그래머스 java 기초 트레이닝
    개발로드맵
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
생활코딩 - Java(다형성)
상단으로

티스토리툴바