Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 복합키
- jwt메서드
- jpa에러
- 스프링 부트 기능
- 최종 프로젝트
- spring서버
- github
- Q 클래스
- 인텔리제이
- JPA주의사항
- JoinColumn
- JPA
- json
- ERD 작성
- Spring Spring boot 차이
- 스프링부트오류
- git
- @IdClass
- REST API 규칙
- json gson 차이
- queryDSL
- Unsatisfied dependency
- 빈생성안됨
- 1차캐시
- jpa회원가입
- REST란
- Filter
- uncheck Exception
- Error creating bean with name
- 스프링 부트 공식 문서
Archives
- Today
- Total
Everyday Dev System
0524_TIL : 인터페이스 자동 형 변환 본문
# 문제점 : 아직 객체지향에 대해서 지식이 턱없이 부족함을 느꼈다.
# 시도 : 새롭게 알게되거나 헷갈리는 부분들의 코드를 직접 쳐보면서 다시 학습했다.
그리고 TIL에도 작성하며 다시 한번 정리하며 공부를 했다.
# 새롭게 알게된 점:
1. 인터페이스 자동, 강제 형변환 관련
interface A {
void a();
}
class B implements A {
@Override
public void a() {
System.out.println("B.a()");
}
public void b() {
System.out.println("B.b()");
}
}
B클래스는 A interface를 implements하여 a 메서드를 오버라이딩한 클래스이다
// A 인터페이스에 구현체 B 대입
A a1 = new B();
a1.a();
// a1.b(); // 불가능
a1은 A interface로 자동 형 변환이 이루어졌기 때문에 A interface에 없는 b() 메서드는 사용이 불가하다.
B b = (B) a1;
b.a();
b.b(); // 강제 타입변환으로 사용 가능
B 클래스 타입으로 강제 타입 변환을 하고 난 후에는 b() 메서드 활용이 가능하다.
interface A {
void a();
}
class B implements A {
@Override
public void a() {
System.out.println("B.a()");
}
public void b() {
System.out.println("B.b()");
}
}
class C extends B {
public void c() {
System.out.println("C.c()");
}
}
// A 인터페이스에 구편체 B를 상속받은 C 대입
A a2 = new C();
a2.a();
//a2.b(); // 불가능
//a2.c(); // 불가능
System.out.println("\nC 강제 타입변환");
C c = (C) a2;
c.a();
c.b(); // 강제 타입변환으로 사용 가능
c.c(); // 강제 타입변환으로 사용 가능
B 클래스를 상속받은 C 클래스 타입을 A interface 타입으로 자동 형변환 시도.
A 타입이므로 b() , c()메서드를 사용 불가
C 타입으로 강제 형변환 시에는 사용 가능
'내배캠 주요 학습 > TIL : Today I Learned' 카테고리의 다른 글
0530_TIL : printf() 사용법 (0) | 2023.05.30 |
---|---|
0524_TIL : git pull이 안될 경우 (0) | 2023.05.24 |
0523_TIL : Iterator 필요성 (1) | 2023.05.23 |
0523_TIL : Java 3주차 강의에서 새로 알게된 것 (0) | 2023.05.23 |
0523_TIL : Java 2주차 강의에서 새로 알게된 것 (0) | 2023.05.23 |