상속, Inheritance
1. 상속이란
- 부모가 가지는 재산을 자식에게 물려주는 행동
- 부모 클래스가 가지는 재산(변수, 메소드)을 자식 클래스에게 물려주는 행동
- 자식 클래스가 코드를 구현하지 않아도, 부모 클래스로부터 구현된 코드를 물려받는 행동
- 코드 재사용 > 비용 절감
2. 상속관계에 있는 클래스 호칭
- 부모클래스 <- 자식클래스
- 슈퍼클래스 <- 서브클래스
- 기본클래스 <- 확장클래스
- 기본클래스 <- 파생클래스
3. 예제코드
public class Ex45_Inheritance {
public static void main(String[] args) {
//부모클래스 인스턴스 생성
Parent p = new Parent();
p.a = 10;
p.b = 20;
//자식클래스 인스턴스 생성
Child c = new Child();
c.a = 20; //부모클래스에서 물러준 멤버;
c.b = 30;
c.aaa();
c.ccc();
}
}
//부모클래스
class Parent {
public int a;
public int b;
public void aaa() {
System.out.println("aaa");
}
}
//부모클래스를 상속받은 자식클래스
class Child extends Parent {
public int c;
public int d;
public void ccc() {
System.out.println("ccc");
}
}
Object
1. Object란
- 모든 클래스의 근원 클래스(Root Class)
- JDK에서 제공되는 클래스
- 9개 메소드 : 모든 클래스들에게 공통으로 필요한 기능을 제공
- 개발자가 만드는 모든 클래스는 명시적으로 상속을 구현하지 않으면, 자동으로 Object클래스의 자식 클래스가 된다.
2. 예제코드
public class Ex46_Object {
public static void main(String[] args) {
Object o1 = new Object();
TestChild c = new TestChild();
// c가 가지는 멤버 : a,b,c,d;
}
}
//개발자가 만드는 모든 클래스는 명시적으로 상속을 구현하지 않으면, 자동으로 Object클래스의 자식 클래스가 된다. (생략)
class TestParent extends Object {
public int a;
public int b;
}
class TestChild extends TestParent {
public int c;
public int d;
}