특징
1. 상속을 하면 기능이 급격히 늘어나고, 클래스들 간의 호환성이 떨어짐(클래스를 다른 클래스로 교체하기 어려움)
그래서 자식클래스를 부모클래스로서 동작하도록 하는 기술이 있음
2. 언제 쓰냐면, 기능이 클래스에 너~~무 많을 경우 오히려 안 좋을 경우가 있음
즉, 해당 클래스에서 나한테 필요한 기능만 사용하고 싶을 때 사용.
3. 같은 인터페이스를 사용하는 클래스는 누구든지 올 수 있다.
ex 1) 부모클래스 ojb = new 자식클래스();
--> 부모 클래스의 타입으로 자식클래스의 인스턴스를 만들 수 있음.
--> 개념 잡을 때 주의할 것은 부모의 개념이라서 자식한테 있는 모든 메소드를 사용할 수 있을 것처럼 보이는데
전혀아님. 당연한건데,,, 헷갈렸다. 자식이 어떻게 클지는 부모도 모른다,, 이런 식으로 생각하면 개념잡기 편함.
--> 여러 클래스를 하나의 타입(상위 클래스)으로 핸들링 할 수 있음
ex 2) [특정인터페이스] inter = new 클래스();
--> 만들어 질 인스턴스가 특정 인터페이스의 기능만 사용하고 싶을 때.
--> 그니까 인터페이스를 3개 구현한 A클래스가 존재하고, A클래스 이용하여 인스턴스를 a1, a2, a3 생성했다고 가정
각 인스턴스 별로 A클래스에서 구현한 [구현1], [구현2], [구현3] 메소드를 사용하고 싶을 경우가 분명히 있음.
이럴경우 타입으로 인터페이스를 선언하고 인스턴스를 만듦
구현1 a1 =new A클래스;
구현2 a2 =new A클래스;
구현3 a3 =new A클래스;
'개발 > 자바' 카테고리의 다른 글
자바 2차원 배열 (0) | 2022.01.10 |
---|---|
Interface (0) | 2021.12.27 |
오버라이딩(Overriding) vs 오버로딩(Overloading) && toString, equals 오버라이딩 해보기 (0) | 2021.12.27 |
자바 상속 (0) | 2021.12.27 |
매개변수(parameter), 인자(argument) 차이점 (0) | 2021.12.26 |
댓글