본문 바로가기
* Web/[Back] Java

[Java] 자바 : 인터페이스(interface) 개념과 동시에 다형성 개념 익히기

by codinguser 2021. 3. 19.

Java 자바 : 인터페이스(Interface)로 바라보는 다형성 개념


 

 

 

인터페이스란?


"클래스에 역할을 부여하기 위한 역할 정의 방법."

책에서 목차를 생각하면 쉽다.(글쓴이의 말하고자 하는 바의 전체 개념을 목차에다 설명하고 자세한 설명은 해당 페이지에 가면 정리가 되어있다.)

 

interface Book{

 

// 책을 읽을거야 근데 그 방법은 아직 설명X, 그냥 나 이렇게 하겠다고만 선언

 public void readContext(); // 내용이 없는 껍데기 메소드 - > 프로토 타입 메소드 = 추상 메소드

 

 

// 나는 나의 생각을 적을거야 어떻게? 아직 그건 몰라~

 public void writemyOpinion();

 

}

 

 

class Mybook implements Book {

 

//@메소드 오버라이딩

public void readContext(){

 

}

 

//@메소드 오버라이딩

public void writemyOpnion(){

}

 

}

 

 

 

 

왜 사용할까?


- 마치 지도처럼 기능을 한 눈에 가독화 할 수 있기에 편하다.

 

- 또한 업 캐스팅이 가능하다. 즉, 인터페이스의 타입을 통해서 그렇기에 비슷한 것들을 그룹화 시킬 수 있다.

 

 

LifeBook lb = new LifeBook();

MythBook mb = new MythBook();

 

Booklist[] booklists = { lb, mb };

 

interface Booklist {

 

}

 

class Lifebook{

 

}

 

class Mythbook{

 

}

 

 

 

<일상 생활 속 살펴보기>

 

지금, 아무 책이나 펼쳐보고 목차를 보면그 목차 하나하나가 인터페이스라고 생각하면 쉽다. 상세 설명은 페이지를 넘김으로써 자세히 설명이 되어있다. 목차(인터페이스)에 대한 내용(메서드 오버라이딩)은 책을 넘기면서 해당 페이지에 자세히 설명이되어 있다.

 

 

< 프로토타입에 대한 이해(with C) >

 

[C언어] 확실히 알고가자 프로토타입(Prototype)이란?(개념잡기)

C언어를 공부하다 보면 코딩을 하는 능력과는 별개로 단어적인 개념으로 인해 쉽게 지치기 마련이다. 단어를 사전적 그대로 받아들이기보다 어떠한 이미지로 기억하는 것이 훨씬 더 효율적이다

codinglevelup.tistory.com

 

 

 

 

 

 

 

 

그래서 다형성이 뭐지?


: 하나의 객체가 다양한 타입을 가지는 것. 

 

 

(전제)

class Book implements Contents, Prologue, Findindex


 

Book b = new Book();

 

Contents c = b;

Prologue p = b;

Findindex f = b;

 

하나의 객체 b가 Contents, Prologue, FIndindex 의 타입으로 해석된다.

 

 

 

댓글