JAVA 프로그래밍 8.4

JAVA 프로그래밍 8.4

8.4 Interfaces and Abstract Classes

Coursr 클래스는 Student 클래스만 참조한다.

Interface와 클래스의 차이점

- Constructor가 없다는 것.

- Instance variable이 없다는 점.

- 메소드의 body가 없이 선언만 되어있다는 점

Parent 클래스가 들어갈 자리에 Interface가 들어가면 그대로 polymorphism으로 사용할 수 있는 것이다

Interface가 타입처럼 사용될 수 있다.

Measurable의 타입으로 파라미터가 들어가면 해당 Interface의 자녀 클래스가

그곳으로 들어갈 수 있다. Is a relation 이 성립하기 때문이다.

이렇게 Interface로 생성해도 가능한 것이다.

부모 클래스처럼 사용할 수 있기 때문이다.

Inferface에는 메소드에 선언만 되어있을 뿐 자세한 구현이 안돼있기 때문에

Measurable 타입으로 오브젝트를 생성하고 원하는 메소드를 사용하기 위해서

Interface 안에 해당 메소드가 선언되어 있고 Interface의 자녀 클래스에서 매소드가

구현되어있어야 사용이 가능하다.

Abstract Class와 Interface의 차이점

Abstract 클래스는 클래스이기 때문에 구현된 메소드가 섞여 있다.

다시 말해서 Body가 있는 메소드도 있을 수 있다는 것이다.

구현 안됀 메소드도 한 두개 섞여있다는 것이고 Instance variable도 있을 수 있다.

Interface가 Interface를 Extend할 수 있다.

create object, used as a base for inheritance, that would always override

Abstract Class를 가지고 Object를 만들지 못한다.

base로 사용된다는 것이 parent 클래스로만 사용된다는 것이다.

from http://handong201.tistory.com/46 by ccl(A) rewrite - 2021-10-29 16:01:50