일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 자바문법
- git
- 인텔리제이
- 핀트수익률
- 직장인부업
- 핀트후기
- 자동투자
- 웹개발
- Java
- 직장인재태크
- 코틀린
- 핀트 후기
- fint
- 예외
- 직장인 소액투자
- 자바기초
- 핀트투자후기
- fint 수익률
- 개발
- AI투자
- 자바
- 웹
- 로보어드바이저
- 핀트
- 직장인소액투자
- fint후기
- 핀트투자
- 소액투자
- 재태크
- 핀트 수익률
- Today
- Total
하루하루 살아남기
[Java / 자바 ] 상속 본문
상속
1. 사람은 동물이다.
2. 사과는 과일이다.
3. 물은 액체이다.
위 세가지 경우처럼 말할수 있는 관게를 kind of 관계라고 합니다. Class를 예를 들어 보겠습니다
Apple은 Fruit 라고 말할수 있으니 Apple은 자식 클래스, Fruit은 부모 클래스입니다.
이런 kind of 관계에 있는 클래스를 작성하겠습니다.
public class Fruit {
public void eat() {
System.out.println("과일을 먹습니다.");
}
}
eat()이라는 메서드를 가진 과일 클래스를 하나 만들었습니다. 당연히 eat이 실행되면 "과일을 먹습니다" 라는 문자열을 출력합니다. 이번에는 Apple 클래스를 하나 만들겠습니다. 이 Apple 클래스는 Fruit 클래스와 자식 <-> 부모 관계입니다.
이 때 상속을 사용합니다. 사용하는 법은 간단합니다.
pulic class 클래스명 extends (상속받을) 부모 클래스 명
상속이 의미하는것은 부모가 가진것을 자식이 물려받는 것 입니다. 부모가 가진것을 자식도 사용할수 있는 것이죠.
public class Apple extends Fruit {
}
Fruit을 상속받은 Apple 클래스입니다. 클래스 내부에 아무것도 없는 빈 클래스입니다. 부모가 가진것을 상속받는다고 했습니다. 상속을 테스트하기 위해 별개의 테스트 클래스를 만들겠습니다.
public class ExtendTest {
public static void main(String[] args) {
Apple apple = new Apple();
apple.eat();
}
}
Apple 클래스의 객체를 하나 만들고 eat() 메서드를 실행했습니다. 분명 아무것도 없는 빈 클래스였는데 정상적으로 실행됩니다. Fruit 클래스를 상속받음으로서 Fruit 클래스의 eat 메서드를 사용가능하게 된 것입니다. 이제 Apple 클래스에 메서드를 추가하고 만들어진 메서드를 실행해 보겠습니다.
public class Apple extends Fruit {
public void appleEat() {
System.out.println("사과는 매우 맛있다.");
}
}
public class ExtendTest {
public static void main(String[] args) {
Apple apple = new Apple();
apple.eat();
apple.appleEat();
}
}
상속받은 메서드와 추가한 메서드 모두 문제없이 실행됩니다. 이렇게 상속받은 메서드 외에 새로 메서드를 추가하는 것을 '확장'한다고 합니다. 이 확장한 메서드는 자식클래스에서 확장됬기에 당연히 부모 클래스(Fruit)에서는 사용할 수 없습니다.
'개발 > Java' 카테고리의 다른 글
[Java / 자바] 추상 클래스 (0) | 2021.03.23 |
---|---|
[Java / 자바] 접근제한자 (0) | 2021.03.19 |
[Java / 자바] 패키지(Pakage) (0) | 2021.03.16 |
[Java / 자바] 생성자 오버로딩(Constructor Overloading) (0) | 2021.03.15 |
[Java / 자바] 메서드 오버로딩(Method Overloading) (0) | 2021.03.15 |