티스토리 뷰
0. 상속
- Inheritance
:: 기존 클래스의 속성과 동작을 새로운 클래스에서 재사용
:: 부모 클래스의 필드와 메서드를 자식 클래스가 물려받음
- 예제
더보기
// 부모 클래스
class Animal {
String name;
void eat() {
System.out.println(name + "가 먹는 중입니다.");
}
}
// 자식 클래스
class Dog extends Animal {
void bark() {
System.out.println(name + "가 멍멍 짖습니다!");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.name = "뽀삐"; // 부모 클래스의 필드 사용
myDog.eat(); // 부모 클래스의 메서드 사용
myDog.bark(); // 자식 클래스의 메서드 사용
}
}
실행 결과
뽀삐가 먹는 중입니다.
뽀삐가 멍멍 짖습니다!
0.1 메서드 오버라이딩
- Method Overriding
:: 부모 클래스의 메서드를 자식 클래스에서 재정의
:: 해당 메서드를 수정 및 확장 가능
:: @Overriding 어노테이션으로 명시하는 게 좋음
- 예제
더보기
class Animal {
void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
class Dog extends Animal {
@Override // 어노테이션: 메서드 오버라이딩을 명시적으로 표시
void sound() {
System.out.println("멍멍!");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.sound(); // 오버라이딩된 메서드 호출
}
}
실행결과
멍멍!
1. 다형성
- Polymorphism
:: 하나의 객체가 여러 타입으로 동작할 수 있는 특성
- (부모) 클래스를 통한 클래스의 다형성을 추구
- 추상-구현체를 통한 인터페이스로 다형성을 추구
- 런타임 다형성과 컴파일 다형성으로 구분
더보기
1. 런타임 다형성
:: 메서드 "Overrid"
:: 런타임에서 호출 당시 객체가 무엇인지에 따라 호출할 메서드를 결정
2. 컴파일 타임 다형성
:: 메서드 "Overload"
:: 파라미터가 무엇인지에 따라 호출할 메서드 결정
- 예제
더보기
class Animal {
void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍!");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("야옹!");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // 부모 타입으로 자식 객체 참조
Animal myCat = new Cat(); // 부모 타입으로 자식 객체 참조
myDog.sound(); // 멍멍!
myCat.sound(); // 야옹!
}
}
실행결과
멍멍!
야옹!
1.1 instanceof 연산자
:: 객체가 특정 클래스의 인스턴스인지 확인
:: 다형성 사용 시, 유용
- 예제 코드
더보기
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
if (myDog instanceof Dog) {
System.out.println("myDog는 Dog의 인스턴스입니다.");
}
if (myCat instanceof Cat) {
System.out.println("myCat는 Cat의 인스턴스입니다.");
}
}
}
실행결과
myDog는 Dog의 인스턴스입니다.
myCat는 Cat의 인스턴스입니다.
참고
ASAC 수업자료
'정리용 > java' 카테고리의 다른 글
[JAVA] 기초 8. 함수형 인터페이스 - Monad (0) | 2025.02.04 |
---|---|
[JAVA] 기초 7. 키워드 Enum (1) | 2025.02.04 |
[JAVA] 기초 6. Generic (0) | 2025.01.23 |
[JAVA] 기초 5. Array와 Collection (0) | 2025.01.23 |
[JAVA] 기초 4. inferface, abstract class (0) | 2025.01.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- useRef
- useState
- asac7기
- useEffect
- react
- git
- useContext
- ssh
- useReducer
- memo
- acas#acas7기
- acac
- asac7
- asac#asac7기
- Nginx
- ASAC
- asac7#asac
- useLayoutEffect
- useCallback
- useMemo
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함