▶현재 시간 : 2022년 10월 25일 12:00a.m.
상속파트는 조금 쉽다. ㅎ
▶상속(inheritance)
- 상속이란 기존의 클래스를 재사용하는 방식 중의 하나입니다.한 번 작성한 코드가 재사용이 필요하다면, 변경사항만 코드로 작성하므로 상대적으로 적은 양의 코드를 작성할 수 있게 됩니다. 이렇게 코드를 재사용하면, 코드와 클래스가 많아질수록 관리가 용이하다는 장점이 있습니다.
- 상속을 통해 클래스간의 계층구조를 만들게 됩니다.
- 상속의 특징
- 부모 클래스로에서 정의된 필드와 메소드를 물려 받습니다.
- 새로운 필드와 메소드를 추가할 수 있습니다.
- 부모 클래스스에서 물려받은 메소드를 수정할 수 있습니다.
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
상속은 extends를 이용하여 사용할 수 있습니다.
그림에서 Animal 는 부모 클래스, 조상 클래스라고 부릅니다. Dog, Cat 클래스는 자식 클래스 , 자손 클래스라고 부릅니다.
class Animal {
String name;
public void cry() {
System.out.println(name + " is crying.");
}
}
class Dog extends Animal {
Dog(String name) {
this.name = name;
}
public void swim() {
System.out.println(name + " is swimming!");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("코코");
dog.cry();
dog.swim();
Animal dog2 = dog;
dog2.cry();
// dog2.swim(); // compile error
}
}
자식(Dog) 객체는 자식(Dog) 타입으로 선언된 변수에도 할당할 수 있고, 부모(Animal) 타입으로 선언된 변수에도 할당할 수 있습니다. 단, 부모(Animal) 타입의 변수로 사용할 때는, 실제 객체를 만들(new) 때 사용한 자식(Dog) 타입에 있는 함수 (여기서는 swim())을 호출할 수 없습니다. 컴파일 에러입니다.
'Java' 카테고리의 다른 글
Java - 객체지향언어 (접근 제어자) (0) | 2022.10.25 |
---|---|
Java - 오버로딩 vs 오버라이딩 (0) | 2022.10.25 |
Java - 객체지향언어(생성자) (0) | 2022.10.25 |
Java - 객체지향언어(클래스, 인스턴스, 메소드) (0) | 2022.10.25 |
Java - 반복문 (0) | 2022.10.24 |