JAVA 상속, super() + 예제

2024. 7. 3. 16:24·JAVA

JAVA에서는 상속이라는 개념이 존재한다.

JAVA에서는 부모 클래스(상위 클래스)의 코드를 자식 클래스(하위 클래스)가  전부 '재사용'할 수 있다. 이를 상속이라고 한다.

상속이라는 개념을 사용하는 가장 큰 이유는 재사용을 할 수 있다는 점이다. 이는 유지보수 용이성을 극대화시키고, 이는 개발시간 단축과 개발비용 축소까지 연결된다.

 

가장 기본적으로, 클래스의 상속이 있다.

상속을 받을 때에는 "extends" 라는 키워드를 사용한다.

예를 들어, Animal이라는 클래스와, Cat이라는 클래스가 있고, Cat 클래스는 Animal이라는 클래스를 상속받는 경우, 다음과 같이 작성한다.

class Animal{
}
class Cat extends Animal{
}

두 클래스 모두 지금은 공백이지만, 내용이 있다면 Cat 클래스는 Animal 클래스 안에있는 모든 내용을 다 상속받는다.

아래는 직접 실습해본 예시이다.

package class02;

class Animal {
	String type;
	String name;
	Animal(String type){
		this(type, "무명");
		System.out.println("로그 01");
	}
	Animal(String type, String name){
		this.type=type;
		this.name=name;
		System.out.println("로그 02");
	}
	void hello() {
		System.out.println(this.type+" "+this.name);
	}
}
class Cat extends Animal{
	Cat(){
		this("나비");
		System.out.println("로그 03");
	}
	Cat(String name){
		super("고양이", name);
		System.out.println("로그 04");
	}
}



public class Test02 {
	
	public static void main(String[] args) {
		Cat 길고양이 = new Cat();
		Cat cat = new Cat("구동이");
		길고양이.hello();
		cat.hello();
	}

}

위 코드를 실행시키면 다음과 같은 내용이 출력된다.

위 코드를 보면, super() 라는 키워드가 존재한다.

자식클래스의 모든 생성자들은 가장 먼저 부모클래스의 기본생성자를 호출한다.(규칙임)

그렇기 때문에 부모클래스의 생성자를 작성하고, 자식클래스를 아직 구현하는 중이라면 컴파일오류가 나게된다.

이를 해결하기 위한 방법으로, 부모에게 클래스에게 존재하는 다른 생성자를 대신 사용하는 방법이 있다.

그러기 위해서는 위 코드처 super()키워드를 사용하면 된다.

'JAVA' 카테고리의 다른 글

JAVA toString() 메서드에 대해서  (0) 2024.07.04
JAVA 오버라이딩 + 예제  (2) 2024.07.03
학생부 프로그램 만들기 (이어서)  (1) 2024.07.03
JAVA 오버로딩 실습  (0) 2024.07.02
JAVA - static, final 키워드  (0) 2024.07.02
'JAVA' 카테고리의 다른 글
  • JAVA toString() 메서드에 대해서
  • JAVA 오버라이딩 + 예제
  • 학생부 프로그램 만들기 (이어서)
  • JAVA 오버로딩 실습
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    객체지향
    html
    recoverabledataaccessexception
    Spring
    멘토씨리즈 자바
    오블완
    jsp
    Di
    @Component
    @repository
    DispatcherServlet
    수제비
    MVC
    오버로딩
    어노테이션
    정보처리기사
    정보처리기사 실기
    aop
    @service
    상속
    2-layered 아키텍처
    생성자
    codeup 4891 : 행복
    정처기
    이벤트 스케줄러
    스프링 프레임워크
    정처기 실기
    티스토리챌린지
    ViewResolver
    java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
JAVA 상속, super() + 예제
상단으로

티스토리툴바