본문 바로가기

Java/[패스트캠퍼스] 100% 환급 챌린지

패스트캠퍼스 환급챌린지 48일차 미션 (3월 19일) : 시그니처 백엔드 Path 초격차 패키지 Online. 강의 후기

https://fastcampus.co.kr/dev_online_besignature
수강 강의명

강의 내용

[1] 인터페이스와 다중 상속
[2] 추상 클래스 vs. 인터페이스
[3] 학습 정리 퀴즈
 

[1] 인터페이스와 다중 상속

일반적으로 자바는 단일 상속만 지원하는데,
다중 상속을 모방한 인터페이스를 통해 다중 상속을 지원(인터페이스는 n개 구현 가능(무한))
객체지향에서 클래스와 상속을 다루는 다른 언어(C++, C#)에서는 다중 상속을 지원한다.
*인터페이스 : 다형성 보장과 다중 상속을 지원하기 위해 등장한 개념
*단일 상속 : 하위 클래스가 클래스 하나만을 상속 받는 형태
*다중 상속 : 하위 클래스가 클래스 여러개를 상속 받는 형태
 

다중 상속의 특징

장점 : 자식 클래스의 기능 막강
단점 : 자식 클래스에서 부모가 갖는 동작을 사용할 때 어떤 부모의 것인지 알아야 함(복잡)

Dog는 [Animal] 클래스를 [상속]받고, [Pet]과 [Robots] 인터페이스를 [구현]
(1) Dog → Animal(extends) // 추상 클래스

(2) Dog → Pet(implements) // 인터페이스
(3) Dog → Robots(implements) // 인터페이스

인터페이스를 둬 물려줘야 할 필요성이 있는 클래스에만 선택적으로 상속하여 구현하게 함
Pet : play(){ 방에서 함께 생활한다. }  // 애완 동물의 특징(추상 메서드)
Dog, Cat : play()를 재정의하여 사용(Animal, Pet 기능을 같이 구현)
하마, 코끼리 : 애완 동물이 아니므로 play()를 물려줄 필요 없음(Animal 기능만 구현)
public class Dog extends Animal implements Pet, Robots { }
Animal r = new Dog();  // Animal : 부모
Pet r = new Dog();  // Pet : 부모의 역할
Robots r = new Dog();  // Robots : 부모의 역할

 

인터페이스가 인터페이스를 상속받는 방법

C → (implements) B  (extends) A
A : 추상 메서드 1개를 갖음
B : 추상 메서드 2개를 갖음
C : 추상 메서드 3개를 구현해야 함(A, B의 추상 메서드)

public interface B extends A { }
public class C implements B { }
B obj = new C();  // Upcasting
A obj = new C();  // Upcasting

 

[2] 추상 클래스 vs. 인터페이스

추상 클래스와 인터페이스의 공통점

다형성을 보장하기 위해 등장된 개념
추상 메서드를 갖음
단독으로 객체를 생성할 수 없음
부모의 역할로 사용(Upcasting) : 자식 클래스를 부모가 받아 부모가 자식 클래스를 구동시킴
 

추상 클래스와 인터페이스의 차이점

추상 클래스(추상 메서드 + 구현 메서드)
서로 비슷한 클래스의 공통 부분을 묶을 때 사용
추상 메서드만 다형성을 보장(다형성 일부 보장)

Dog → Animal(extends)
Cat → Animal(extends)

Animal r = new Dog();  // Upcasting
Animal r = new Cat();  // Upcasting

 
인터페이스(추상 메서드 + final static 상수)
서로 다른 클래스의 공통 부분을 묶을 때 사용
추상 메서드 밖에 없음(다형성 100% 보장)

Radio → RemoCon(implements)
TV → RemoCon(implements)

RemoCon r = new Radio();  // Upcasting
RemoCon r = new TV();  // Upcasting

 

[3] 학습 정리 퀴즈

Q. 서로 비슷한 클래스의 공통 부분을 묶을 때 사용하는 클래스는?


Q. 서로 다른 클래스의 공통 부분을 묶을 때 사용하는 클래스는?


Q. 인터페이스가 가질 수 있는 멤버 2가지를 쓰시오.


Q. 다형성을 보장하기 위해 등장된 클래스 2가지를 쓰시오.


Q. "Dog 클래스는 Animal 클래스를 상속받고 Pet 인터페이스를 구현했다"를 자바 코드로 작성하시오.

더보기

Q. 서로 비슷한 클래스의 공통 부분을 묶을 때 사용하는 클래스는?
추상 클래스

Q. 서로 다른 클래스의 공통 부분을 묶을 때 사용하는 클래스는?
인터페이스

Q. 인터페이스가 가질 수 있는 멤버 2가지를 쓰시오.
추상 메서드, final static 변수(상수)

Q. 다형성을 보장하기 위해 등장된 클래스 2가지를 쓰시오.
추상 클래스, 인터페이스

Q. "Dog 클래스는 Animal 클래스를 상속받고 Pet 인터페이스를 구현했다"를 자바 코드로 작성하시오.
public class Dog extends Animal implements Pet {}

 


 

수강 화면수강 화면
수강 화면

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr