반응형
📚 KEYWORD
타입 변환
타입을 강제로 변환할 수 있다.
부모에서 자식 클래스의 메서드를 사용하고 싶을 떄
Parent parent2 = new Child();
parent2.method(); // 자식
// parent2.metod(); // 오류
Child child2 = (Child) parent2;
child2.metod(); // 동작
추상클래스
추상메소드를 1개 이상 선언한 클래스
추상메소드
구현 내용이 없이 텅 비어있는 메소드
자식에서 오버라이딩하여 구현할 수 있다.
다형성(= 하나의 객체가 여러 가지 타입을 가질 수 있는 것)을 위해 주로 사용하곤 한다.
abstract class Recipe {
abstract void getInfo();
}
인터페이스
모든 메서드가 추상 메소드인 일종의 추상 클래스
필드 대신 상수를 선언할 수 있다.
접근제어자 interface 인터페이스이름 {
public static final 자료형 상수명 = 값;
접근제어자 abstact 메소드이름(매개변수1, 매개변수2, ...)
...
}
사용 이유
- 정보 은닉 : 실제 구현 클래스 내용을 보지 않고도 객체를 사용할 수 있다.
- 모듈화 : 독립적으로 구현되어 객체 변경이 필요할 때 코드 수정이 최소화된다.
🤔 THINK
인터페이스와 추상클래스의 차이?
- 모든 메서드가 추상 메서드 = 인터페이스
- 모든 건 아니지만 추상 메서드가 1개라도 있으면 = 추상클래스
- 추상 메서드가 1개도 없으면 = 클래스
- 일반 변수 가질 수 있다 = 추상클래스 / 없다 static final 상수만 가능 = 인터페이스
참고
자바의 추상클래스(abstract class)와 인터페이스(interface)
💬 ETC
코드 리뷰
리뷰는 틀린 것을 보려고 X
같은 방향으로 가고 있는지 보기 위해 하는 것 O
반응형
'기타 > TIL' 카테고리의 다른 글
[TIL] 24.04.30 (0) | 2024.05.02 |
---|---|
[TIL] 24.04.29 (2) | 2024.04.30 |
[TIL] 24.04.08 (0) | 2024.04.08 |
[TIL] 24.04.04 (0) | 2024.04.04 |
[TIL] 24.04.03 (0) | 2024.04.03 |