Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

꺄르륵

0906 _ Java의 정석 7장 객체지향 프로그래밍 II 본문

프로그래밍/Java

0906 _ Java의 정석 7장 객체지향 프로그래밍 II

Teddy. 2019. 9. 6. 13:32

  1. 상속 ( ~은 ~이다. = ~ is ~ a ) 
    
    - 기존의 클래스를 재사용하여 새로운 클래스를 작성한다.
    - 적은 양의 코드로 새로운 클래스를 작성할 수 있다.
    - 새로 작성하고자 하는 클래스의 뒤에 상속받고자 하는 클래스의 이름을 키워드 extends 와 함께 작성한다. 
      : class SuperCar extends Car {
       
        }
    - 상속해주는 클래스를 '조상클래스', 상속받는 클래스를 '자손클래스'라고 한다.
      : 조상클래스(부모클래스, 상위클래스, 기반클래스)
      : 자손클래스(자식클래스, 하위클래스, 파생클래스)
    - 조상클래스의 멤버가 자손클래스에 상속된다.
    - 자손클래스의 멤버의 갯수는 조상클래스보다 항상 같거나 많다. 
     
  2. 포함 관계 ( ~은 ~을 가지고 있다. ~ has ~ a)
   
    - 상속 이외의 클래스를 재사용하는 또 다른 방법
    - 한 클래스의 멤버변수로 다른 클래스를 선언하는 방식이다.

  3. toString()
   
    - 인스턴스의 문자열을 반환할 목적으로 사용
    - 객체의 주소를 참조한다.
     
  4. 단일 상속
   
    - 자바에서는 단일상속(두개 이상 불가)만 가능하다.
      class TVCR extends Tv,Vcr { // 사용 불가능
       
      }
    - Tv와 Vcr 클래스에 동일한 method가 있을 때 어느 것을 상속받을지 알 수 없다.
      Vcr의 method명을 바꾸면 기존에 사용한 모든 method명을 변경해줘야 한다.
    - 클래스간의 관계가 보다 명확해진다.

  5. Object 클래스
   
    - 모든 클래스의 상속 계층도에 가장 상위에 위치하는 조상 클래스이다.
    - 다른 클래스를 상속받지 않는 모든 클래스들은 자동적으로 Object 클래스를 상속 받는다.
    - toString(), equals() 를 정의하지 않고도 사용할 수 있다.


  6. 오버라이딩 ( overriding )
   
    - 오버로딩 : 한 클래스 내부에서 같은 이름의 메서드를 여러개 만들어 내는 것.
    - 조상클래스로부터 상속받은 메서드의 내용을 자손클래스에서 재정의하는 것.
    - 오버라이딩이 성립하기 위한 조건
      : 선언부가 일치해야 한다.
      : 1. 메서드의 명이 같아야 한다.
      : 2. 매개 변수 개수와 타입이 같아야 한다.
      : 3. 리턴타입이 같아야 한다.
      : 조상클래스의 메서드를 자손클래스에서 오버라이딩 할 때는 접근제어자의 

        범위가 조상클래스의 범위보다 좁게 설정 할 수 없다.
      : 예외는 부모클래스의 메서드보다 많이 선언할 수 없다.
      : 인스턴스 메서드를 클래스메서드로 변환 또는 그 반대로 할 수 없다.
       
      void method
     
  7. super 
   
    - 조상 클래스의 '멤버'와 자손클래스의 멤버가 중복 정의돼 있을 때 사용한다.
     
    - this. 지역변수와 전역변수의 이름이 같을 때 구분을 위해 사용한다. ( 이 인스턴스내에서 )
    - 클래스 멤버는 사용할 수 없다.
     
  8. super()
   
    - 자손클래스의 생성자에서 부모클래스의 생성자를 호출할 때 사용한다.
    - 생성자의 첫줄에만 사용할 수 있다.
     
    - this() 같은 클래스 내에서 생성자 내에서 다른 생성자를 호출할 때 사용한다.