ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 상속
    컴퓨터/Java 2019. 9. 3. 23:43

    출처 : 자바 프로그래밍 입문(인프런)

    - 필요성

    기존의 검증된 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

    댓글

Designed by Tistory.