728x90
반응형
Ch 01. 자바에서 상속이란
- 상속(Inheritance)의 개념:
- 기존 클래스의 기능을 재사용하면서 새로운 기능을 추가할 수 있는 기능.
- 코드의 재사용성과 유지보수성을 향상.
- 상속 구문:
class Parent {
void display() {
System.out.println("부모 클래스");
}
}
class Child extends Parent {
void show() {
System.out.println("자식 클래스");
}
}
- 실습 예제:
- 부모(Parent) 클래스의 메서드를 자식(Child) 클래스에서 상속받아 활용.
- 자식 클래스에 새로운 메서드 추가 및 기능 확장.
Ch 02. 상속관계에서 객체 생성 및 Override
- 상속 관계의 객체 생성 원리:
- 자식 객체를 생성하면 부모 객체가 먼저 생성된 후 자식 객체가 생성됨.
- 메서드 오버라이딩(Override):
- 상속받은 메서드를 자식 클래스에서 재정의하여 동작을 변경.
- 오버라이딩 예제:
class Animal {
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍");
}
}
- 결론: 오버라이딩을 활용해 자식 클래스에서 동작을 원하는 대로 변경할 수 있으며, 객체 생성 시 부모-자식 관계의 생성 순서 이해가 중요.
Ch 03. 객체 형변환(Object Casting)
- 형변환(Casting)이란?
- 업캐스팅(Upcasting): 자식 클래스 객체를 부모 클래스 타입으로 변환.
- 다운캐스팅(Downcasting): 부모 클래스 타입을 자식 클래스 타입으로 변환(명시적 변환 필요).
- 형변환 예제:
class Animal {
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
void bark() {
System.out.println("멍멍");
}
}
Animal animal = new Dog(); // 업캐스팅
animal.sound(); // 동물 소리 출력
Dog dog = (Dog) animal; // 다운캐스팅
dog.bark(); // 멍멍 출력
- 결론: 업캐스팅은 자동 변환되지만, 다운캐스팅은 강제 변환이 필요하며 형변환 오류 방지를 위해 instanceof 연산자 활용 가능.
Ch 04. 다형성(Polymorphism)과 활용
- 다형성(Polymorphism)의 개념:
- 하나의 객체가 여러 형태를 가질 수 있는 특성.
- 부모 클래스로 참조하되, 자식 클래스의 메서드를 호출할 수 있음.
- 다형성 예제:
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 Test {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // 멍멍
animal2.sound(); // 야옹
}
}
- 결론: 코드의 유연성과 확장성을 높여 객체지향 프로그래밍의 핵심 개념을 실현.
Ch 05. 추상클래스와 인터페이스의 등장
- 추상 클래스(Abstract Class):
- 일부 메서드는 구현되고, 일부는 구현되지 않은 클래스.
- 상속받아 구체적으로 구현해야 함.
abstract class Animal {
abstract void sound(); // 추상 메서드
void sleep() { // 일반 메서드
System.out.println("잠자기");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍");
}
}
- 인터페이스(Interface):
- 메서드의 선언만 포함하고 구현은 제공하지 않음.
- 다중 상속을 지원하여 유연한 설계 가능.
interface Animal {
void sound();
}
class Dog implements Animal {
public void sound() {
System.out.println("멍멍");
}
}
- 결론: 추상 클래스는 상속을 통해 확장하고, 인터페이스는 구현을 강제하여 구조적 유연성을 제공.
Ch 06. 자바 최상위 클래스 Object
- Object 클래스란?
- 자바의 최상위 클래스. 모든 클래스는 Object를 상속받음.
- Object의 주요 메서드:
- toString(): 객체 정보를 문자열로 반환.
- equals(): 객체 비교.
- hashCode(): 해시 코드 반환.
- getClass(): 객체의 클래스 정보 반환.
class Person {
String name;
Person(String name) {
this.name = name;
}
@Override
public String toString() {
return "이름: " + name;
}
}
public class Test {
public static void main(String[] args) {
Person p = new Person("홍길동");
System.out.println(p.toString()); // 이름: 홍길동
}
}
- 결론: Object 클래스의 메서드를 재정의하여 객체의 기본 동작을 커스터마이징할 수 있다.
728x90
반응형
'웹 백엔드 > 패스트캠퍼스) 백엔드시그니처' 카테고리의 다른 글
패스트캠퍼스) 백엔드시그니처 Course 2: API 활용하기 (1) | 2025.01.03 |
---|---|
패스트캠퍼스) 백엔드시그니처 Course2: Collection Framwork (0) | 2025.01.02 |
패스트캠퍼스) 백엔드시그니처 Course 2: 자바 API활용하기 및 API 만들기 (0) | 2025.01.02 |
패스트캠퍼스) 백엔드시그니처 Course1: 자바 기초 (0) | 2024.12.30 |
패스트캠퍼스) 백엔드시그니처 Course1: 생각, 표현 코딩 (0) | 2024.12.30 |