JAVA
: 객체지향 프로그램에서 부모클래스의 필드와 메소드를 자식클래스에 물려주는 것
특징
: 중복코드를 줄여 개발시간을 단축시킨다.
- 클래스 상속
: 자식 클래스를 선언할때 어떤 부모클래스로부터 상속 받을 것인지를 결정하고, 부모 클래스를 extends 뒤에 기술한다.
EX) public class 자식클래스 extends 부모 클래스{
}
자바에서의 클래스 상속
: 다중 상속을 허용하지 않는다.(여러개의 부모 클래스를 상속 할 수 없다.)
부모 생성자 호출
: 부모 생성자는 자식 생성자의 맨 첫줄에 숨겨져있는 super()에 의해 호출된다.
public 자식클래스...{
super();
}
super()는 커ㅁ파일 과정에서 자동 추가되며 부모의 기본 생성자를 호출한다.
final 클래스와 메소드
public final Class 클래스{}
: 자식 클래스를 만들 수 없다.
public final 리턴타입 메소드(매개변수,...){}
:부모 클래스를 상속해서 자식 클래스를 선언할때 부모클래스에 선언된 final 메소드를 오버라이딩 할 수 없다.
protected 접근 제한자
: 다른 패키지일때 상속을 받아서만 가능하다.
A 파일
package ch8;
public class A {
protected String field;
protected A() {}
protected void method() {}
}
C 클래스 파일
package examtbl;
import ch8.A;
public class C extends A{
// 상속을 통해서는 부를 수 있다.
public C() {
super();
}
public void method1() {
this.field="value";
this.method();
}
// 직접 객체를 생성해서 사용하는것은 불가능 하다.
public void method2() {
A a = new A();
a.field = "value";
a.method();
}
}
추상 클래스
: 객체를 생성할 수 있는 클래스의 공통적인 필드나 메소드를 추출하여 선언한 클래스를 추상 클래스라고 한다.
: 직접 NER를 사용할 수 없고 상속을 통한 자식을 통해서만 사용 가능하다.
기본 형식
public abstract class 클래스명 {
// 필드
// 생성자
// 메소드
}
추상 메소드
: 추상 메소드는 추상 클래스 안에서만 사용할 수있다.
기본 형식
abstract 리턴타입 메소드명 (매개변수, ...);