1. 객체지향의 주요 특성.
 1) 추상화 (Abstraction)
 2) 캡슐화 (Encapsulation)

 3) 상속화 (Inheritance)
  - 자바는 단일 상속으로 1개의 상위 클래스로부터 상속받을 수 있다. (역학 조사로 Maintanance에 좋지만 현실적으로 단일 상속을 사용하지 않는다. extends는 한번 사용하지만, 인터페이스(가상클래스)를 활용한다.)

 

C++ 

Java 

C# 

부모

 Base

Super 

base 

 표현

  :

 extends 

 

 자식

 Derived

 다중상속

 sub

단일상속

 

 

 
  - TwoD extends ThreeD : 생성자로 TwoD를 생성할때 먼저 부모클래스인 ThreeD를 메모리 heap에 올린다.
  - 자식 주소로 부모를 접근하면 상속, 부모 주소로 자식을 접근하면 다형성 이다.
  - class와 class, interface와 interface 간에는 extends, class와 inteface는 implements(동종간에는 extends,이종간에는 implements)
  - 관계    
    i) "is a"  : ex) 오토바이 -> 탈것
    ii) "has a"  ex) 주방 -> 냉장고
  - 상속이 되지 않는 것.
    i) private 선언 된 것은 상속되지않는다.
    ii) static 역시 상속되지 않는다.
    iii) 생성자는 상속되지 않는다.
       - 자식이 부모를 생성하려면 this메소드와 같은 형식의 super()를 사용한다. (마찬가지로 첫줄에 쓴다)
    iV) Overshadow 변수(클래스 변수와 같은 이름의 변수를 사용), Override 메소드 는 상속되지않는다. 자식 것을 쓴다.
       - super()를 사용하여 해결 할 수 있다.
       - String 형은 자체적으로 static 이기 때문에 this()나 super()이용해 접근할 수 없다.
 4) 다형성 (Polymorphism)

 
 
 
ps.----------------------------------------------------------------------------------------
- Object는 모든 객체들의 필수 요소의 집합이다. (원형이다.)
 
- 객체 비교에 대하여
   1. ==, !=
     1) value type -> 값비교, (su==num)
     2) Reference type -> 주소비교
     3) String type --> 값비교(new 없을 때), 주소비교(new 사용) //보통 String은 equals()를 사용한다.
   2. equals()
     1) value type --> 해당없음 (su.equals(num))
     2) Reference type --> 주소비교
     3) String type --> new와 관계없이 값비교
 

+ Recent posts