상속 특징

실전 자바 강좌 (ver.2018) - 초보부터 개발자 취업까지!! 강의를

개인공부하며 정리하는 용도의 포스팅입니다.

학습목표


  • 상속관계에 있는 클래스의 특징들에 대해서 학습

메서드 오버라이드(override)


부모 클래스의 기능을 자식 클래스에서 재정의해서 사용한다.

메서드오버라이드

package lec19Pjt001;

public class ParentClass {
    
    public void makeJJajang() {
        System.out.println(" -- makeJJajang() START --");
    }
}
package lec19Pjt001;

public class ChildClass extends ParentClass {
    
    @Override
    public void makeJJajang() {
        System.out.println(" -- more delicious makeJJajang() START--");
    }
}
ChildClass child = new ChildClass();
child.makeJJajang();

결과

ParentClass constructor
ChildClass constructor
-- more delicious makeJJajang() START --

자료형(타입)


기본 자료형처럼 클래스도 자료형이다.

  • 부모 클래스
package lec19Pjt001;

public class ParentClass {
    
    public void makeJJajang() {
        System.out.println(" -- makeJJajang() START --");
    }
}
  • 첫번째 자식 클래스
package lec19Pjt001;

public class FirstChildClass extends ParentClass {
    
    @Override
    public void makeJJajang() {
        System.out.println("-- FirstChildClass's makeJJajang() START --");
    }
}
  • 두번째 자식 클래스
package lec19Pjt001;

public class SecondChildClass extends ParentClass {
    
    @Override
    public void makeJJajang() {
        System.out.println("-- SecondChildClass's makeJJajang() START --");
    }
}
  • 코드 실행
ParentClass childs[] = new ParentClass[2];
childs[0] = new FirstChildClass();
childs[1] = new SecondChildClass();

for (int i = 0; i < chlids.length; i++) {
    childs[i].makeJJajang();
}

결과

ParentClass constructor
FirstChildClass constructor
ParentClass constructor
SecondChildClass constructor
-- FirstChildClass's makeJJajang() START --
-- SecondChildClass's makeJJajang() START --

Object 클래스


모든 클래스의 최상위 클래스는 Object 클래스이다.

object클래스

Super 클래스


상위 클래스를 호출할 때 super 키워드를 이용한다

ParentClass

int openYear = 1995;

public void makeJJajang() {
    System.out.println(" -- makeJJajang() START --");
}

ChildClass

int openYear = 2000;

public void getOpenYear() {
    System.out.println("ChildClass's Open year : " + this.openYear);
    System.out.println("ParentClass's Open year : " + super.openYear);
}
  • ChildClassParentClass를 상속함.

코드 실행

ChildClass c = new ChildClass();
c.getOpenYear();

결과

ParentClass constructor
ChildClass constructor
ChildClass's Open year : 2000
ParentClass's Open year : 1995

Reference


실전 자바 강좌 (ver.2018) - 상속 특징

Comments