-
출처 : 자바 프로그래밍 입문(인프런)
- 필요성
기존의 검증된 class를 이용해서 빠르고 쉽게 새로운 class를 만들 수 있다.
ex. extends를 이용해서 상속한다
package testPjt; public class ChildClass extends ParentClass{ public ChildClass() { System.out.println("-- ChildClass constructor --"); } public childFun() { System.out.println(" -- childFunc() --"); } }
package testPjt; public class ParentClass { public ParentClass() { System.out.println("--- ParentClass Constructor ---") } public void parentFun() { System.out.println("--- parentFunc ---") } }
ChildClass child = new ChildClass(); -> ParentClass의 객체먼저 생긴다. 부모 클래스가 먼저 있어야 상속 받을 수 있어.
child.parentFun();
child.childFun();
- 특징
1) 자바는 단일 상속만 가능, 다중 상속은 지원하지 않는다.
2) 자식 클래스는 부모 클래스의 모든 자원을 사용할 수 있지만 private 접근자의 속성과 메서드는 사용할 수 없다.
- 메서드 오버라이드
부모 클래스의 기능을 자식 클래스에서 재정의해서 사용한다.
기존 클래스를 확장, 업데이트 할 수 있다.
@override 위에 써주고 쓴다.
- 클래스도 하나의 자료형이다.
클래스의 이름은 데이터 타입으로도 이용된다.
Childclass child = new ChildClass(); 뿐만 아니라
ParentClass child = new ChildClass()라고 만들어도 된다.
상위 클래스 데이터 타입이어도 된다. childClass는 상위 클래스를 상속받은 것이기 때문.
배열의 요소는 객체 타입이 다 동일해야 한다.
이때, 부모 클래스로 데이터 타입을 만들면(new할 때는 각각 다른 자식 클래스여도) 같은 배열 안에 넣을 수 있다.
모든 클래스의 최상위 클래스는 Object Class, ObjectList class가 있다.
데이터 타입을 모두 Object로 통일시키면 배열에 넣을 수 있다.
this : 현재 내가 있는 객체
super : 상위 클래스로 올라가라
ChildClass 내에서 this.속성, super.속성으로 각각의 속성을 가리킬 수 있다.
'컴퓨터 > Java' 카테고리의 다른 글
클래스 04: 인터페이스 (0) 2019.09.04 클래스 03: 내부 클래스와 익명 클래스 (0) 2019.09.04 데이터 은닉 (0) 2019.09.03 패키지와 static (0) 2019.09.03 생성자, 소멸자 (0) 2019.09.03