Java interface

인터페이스와 다형성

수업소개

인터페이스에 정의된 변수와 메소드만을 클래스를 사용하는 사용자에게 노출하는 방법이 다형성입니다. 다형성에 대해서 알아봅시다. 

 

 

 

강의 

 

 

 

소스코드

https://github.com/egoing/java-interface/commit/ec3714217cebf7324fe768a53bd7694f6db3d5d8

interface Calculable{
    double PI = 3.14;
    int sum(int v1, int v2);
}
interface Printable{
    void print();
}
class RealCal implements Calculable, Printable{
    public int sum(int v1, int v2) {
        return v1+v2;
    }
    public void print() {
        System.out.println("This is RealCal!!");
    }
}
class AdvancedPrint implements Printable{
    public void print() {
        System.out.println("This is RealCal!!");
    }
}
public class InterfaceApp {
    public static void main(String[] args) {
        Printable c = new AdvancedPrint();
        c.print();
    }
}

 

댓글

댓글 본문
  1. 당당
    2023.04.24
  2. 나연
    2022년 2월 25일 (금) 완료

    다형성(polymorphism) : 하나의 클래스가 여러 가지의 얼굴을 갖게 하는 것

    데이터 타입은 클래스를 지정할 수도 있고 클래스가 구현하고 있는 인터페이스를 지정할 수도 있음
    - `RealCalculator calculator = new RealCalculator();`에서
    `Calculable calculator = new RealCalculator();`라고 지정하면 이제 `calculator`는 `Calculable`로서 동작함
    - `Printable calculator = new RealCalculator();` : `RealCalculator`이 이 변수에서는 `Printable`로 사용
    -- `Printable`에 해당되는 기능을 제외한 나머지 메소드와 변수는 감춰짐

    ```java
    class AdvancedPrint implements Printable {

    @Override
    public void print() {
    System.out.println("This is RealCalculator.");
    }

    }
    ```
    ```java
    Printable calculator = new AdvancedPrint();
    ```
    - 이 곳에 오는 클래스의 종류를 인터페이스를 통해서 지정하면 여기는 똑같은 인터페이스를 구현하는 클래스라면 어떤 것이든 올 수 있음 (호환성을 보장할 수 있음)

    어떠한 클래스가 데이터 타입을 무엇으로 하느냐에 따라 다양한 얼굴을 갖게 되는 것을 다형성이라고 함
  3. 2021.09.02 완료
  4. boat
    다형성: 인스턴스를 만들 때 하나의 클래스가 다양한 얼굴을 갖게 하는 것.

    인스턴스의 데이터타입은 클래스가 될 수도 있고, 그 클래스가 구현하고 있는 인터페이스가 될 수도 있다.
    데이터타입을 인터페이스로 설정해주었을 때 클래스는 다형성을 가질 수 있다.
    다형성은 클래스를 사용할 때 필요한 기능만 보여줄 수 있고 호환성이 보장된다는 장점이 있다.
  5. oyuiw
    20201213
  6. 자바가 무섭지 않은 예솔
    다형성 : 어떤 클래스가 데이터타입을 무엇으로 하느냐에 따라서 다른 얼굴을 갖게 되는 것

    Realcal 클래스가 interface 기능으로 calculable 과 printable 클래스를 상속 받았다고 해보자
    Realcal c = new Realcal();
    ㄴ> 이 realcal을 calculable 또는 printable로 바꾸고 해당 기능만 사용할 수 있도록 바꿀 수 있다.
  7. 니이내이
    이해가 잘되게 듣는이 입장에서 설명해주셔서 항상 감사드립니다! ㅎㅎ
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기