자바에서는 Object Oriented Programming의 특징 중에 하나인 다형성(Polymorphism)을 지원하는 방법으로 메소드 오버로딩과 오버라이딩을 지원한다. (물론 다른 언어들도...)

 

Overloading

  • 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 달라서, 메모리에 같은 이름의 메소드가 여러 개 로딩되는 형태
  • 메소드 오버로딩, 생성자 오버로딩

 

overloading

Overriding

  • 상속에서 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의하여 사용.
  • 부모 객체의 메소드는 숨겨지기 때문에, 자식 객체에서 메소드를 호출하면 오버라이딩된 자식 메소드가 호출
  • 접근 제한을 더 강하게 오버라이딩 할 수 없음

 

정의

  • 객체(Object) 란? 
    물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것을 식별 가능한 것.
  • 객체 모델링? 
    현실 세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정
  • 객체지향 프로그래밍? 
    부품에 해당하는 객체를 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법

Object Oriented Programming 특징

1. Inheritance (상속)

[1] extends (class 상속)
[2] implementation (interface / class 구현)

 

2. Polymorphism (다형성)

: 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있는 성질 (같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질)
[1] Overloading: 메소드 다중정의
[2] Overriding: 메소드 재정의

[3] Interface : one interface, multiple implementation
하나의 인터페이스를 사용하여 다양한 구현 방법 제공 - 하나의 클래스나 함수가 다양하게 동작

 

3. 캡슐화(Encapsulation)
1) information hiding: 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것
2) access modifier(접근 제한자) 를 사용하여 노출 여부 결정

+ Recent posts