less than 1 minute read

★상속: 코드의 재사용을 위해 한 클래스의 멤버를 그대로 물려받은 또다른 클래스를 선언하는 것. 이때 변수는 물론 함수도 그대로 물려받게 되는데 상속받는 클래스에서 이 함수를 재정의 할 수 있다. 이것을 오버라이딩이라고 한다. 오버로딩과는 다름

★상속하는 클래스를 부모 클래스, 상위 클래스, super class, base class, 기초 클래스…라고 부르고 상속 받는 쪽은 자식 클래스, 하위 클래스, sub class, derived class, 파생 클래스…등등으로 부른다.

★extends : 클래스의 멤버를 그대로 재 사용하겠다는 선언. class A extends B : B클래스를 상속한 A클래스. Java에서는 다중상속은 불가능하고, 단 하나의 클래스만 상속할 수 있다.

★서브 클래스의 인스턴스가 만들어지는 공간에 슈퍼 클래스의 멤버 변수가 먼저 생성된 후 서브 클래스의 멤버가 만들어 진다.

★하위 클래스의 생성자에서 super()를 반드시 호출해줘야 한다. super()는 상위 클래스의 생성자 호출을 의미한다. super()에서 일단 상위 클래스의 생성자를 먼저 실행한후 다시 돌아와 생성자를 마저 실행한다.

★하위 클래스의 인스턴스를 상위클래스의 자료형으로 선언하는것이 가능하다. 반대는 불가능. 단 상위클래스의 자료형을 선언한다면 상위클래스의 메소드만 사용할 수 있다. 다만 override된 메소드는 메모리 상에서 가장 하위의 클래스의 메소드에 연결되어 있기 때문에 원래의 하위클래스의 메소드가 호출되게 된다.

★이러한 특성으로 인해 한 클래스를 여러 서브클래스가 상속하고 있을때 원래 부모클래스의 배열에 모두 집어넣을 수 있고, 어떤 자식을래스인지 알지위새 instanceof키워드를 사용할 수 있다.

Categories:

Updated: