[JAVA 23.06.27] Polymorphism, Overriding, Interface

홍선우·2023년 6월 27일
0
  1. 다형성이란?
  • 부모-자식 상속 관계에 있는 클래스에서 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리
  • 다형성을 활용하면 부모 클래스가 자식 클래스의 동작 방식을 알수 없어도 오버라이딩을 통해 자식 클래스를 접근할 수 있다.

  1. 아래가 되지 않는 이유에 대하여 메모리 그림으로 설명하시오.
    SmartPhone ph2 = new MobilePhone();

  1. 메소드 오버라이딩(Overriding) 이란?
  • 상속관계에서 똑같은 함수(이름, 리턴타입, 파라미터개수와 종류)로 바디{}(실행내용)만 달리하는 것
  • 오버라이딩은 자식꺼

4.interface 와 class 의 차이는?

  • 인터페이스 안에 올 수 있는 것은 함수구현(X) -> 추상메소드와 상수만 올 수 있다.
  • 클래스는 모든 변수와 메소드가 올 수 있다.

  1. 다음을 프로그램 하시오.[필수] ⭐️
    interface Printable { // MS가 정의하고 제공한 인터페이스
    public void print(String doc);
    }
    //SamsungPrinter 와 LGPrinter 만드시오
    public static void main(String[] args) {
    String myDoc = "This is a report about...";

// 삼성 프린터로 출력
Printaable print = new SamsungPrinter();
print.print(myDoc);
System.out.println();

// LG 프린터로 출력
print = new LGPrinter();
print.print(myDoc);

출력:
From Samsung Printer
This is a report about...
From LG Printer
This is a report about...




  1. @Override 에 대하여 설명하시오.
  • 해당 메소드가 부모 클래스에 있는 메서드를 Override 했다는 것을 명시적으로 선언한다. 가령 어노테이션을 사용하지 않으면 자식 클래스에 여러 개의 메소드가 있을 경우, 어떤 메소드가 Override 되었는지 쉽게 알기 어렵다. 이 때, 오버라이드 메소드를 사용하여 명시적으로 선언하게 되면 많은 메소드 중에서 어떠한 메소드가 부모 클래스로부터 오버라이딩이 되었는지 쉽게 파악할 수 있다. 또한 오버라이드 된 사실을 컴파일러에게 명시시켜준다.

  1. interface에 올 수 있는 두 가지는?
  • 메소드
  • 상수

  1. abstract 키워드에 대하여 설명하시오.
  • 메소드에 구현부가 없다는 것을 알려준다.
  • interface에 메소드 작성 시 입력하지 않을 경우 컴파일러가 자동으로 abstract를 입력해준다.

0개의 댓글