uml 다이어그램
: Structure Diagrams, Behavioral Diagrams로 나뉜다.
Structure Diagrams
- +: public
- #: protected
(같은 패키지 또는 자식 클래스에서 사용할 수 있다.) - -: private
상속
- 자바의 클래스 상속은 단일 상속이다.
Employee is a Person
Student is a Person
Account is a Person
- 상속 예약어는 extends
초기화 순서
- 부모 클래스 초기화
: 자식 클래스가 생성될 때, 먼저 부모 클래스의 생성자가 호출되어 부모 클래스가 초기화된다. 이 과정에서 부모 클래스의 필드나 메서드 초기화가 수행된다. - 자식 클래스 초기화
: 부모 클래스의 초기화가 완료된 후에 자식 클래스의 생성자가 호출되어 자식 클래스가 초기화된다. 이 과정에서 자식 클래스의 필드나 메서드 초기화가 수행된다.
💁 예시
class Parent {
Parent() {
System.out.println("부모 클래스의 생성자 호출");
}
}
class Child extends Parent {
Child() {
System.out.println("자식 클래스의 생성자 호출");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
}
}
관계 성립 조건
- is a (또는 kind of) 관계가 성립돼야 한다.
Method Overriding
다형성을 통해 실제 객체의 overring된 메서드가 호출된다.
💁 예시
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 animal = new Animal();
animal.sound(); // 출력: 동물 소리
Dog dog = new Dog();
dog.sound(); // 출력: 멍멍
//부모 클래스 타입의 변수에 자식 클래스 객체를 할당했다.
Animal anotherAnimal = new Dog(); // 다형성 예시
anotherAnimal.sound(); // 출력: 멍멍 (실제로는 Dog의 sound() 메서드가 호출됨)
}
}
'웹개발 > Java' 카테고리의 다른 글
[Java] 멀티 스레드 (0) | 2024.07.04 |
---|---|
[Java] Class (0) | 2024.06.20 |