OOP(다형성, 캡슐화)

다형성(Polymorphism)

= ex) 운전할 수 있으면 차 종류에 관계없이 운전 가능하다 -> 다형성이 되어있음

마우스 종류가 달라져도 마우스 사용이 가능하다 -> 다형성이 되어있음

내가 쓰는게 ms word 일때 아래한글 사용하기 힘듬 -> 다형성이 되어있지 않음

ex) KS system

KS----->A사, B사, C사 KS의 기능이면 A,B,C사의 똑같은 기능이다(자동차 브레이크)

KS s = new KS(); S.기능 을 사용한다는 의미

--> KS만 알면 A,B,C에서 사용이 가능하다

--------------------------->즉, 동일한 인터페이스를 사용할 수 있도록 한다. 다형성이 되어있다.

•Java Language에서 Method Overloading, Method Overriding, Abstract Method, Abstract Class, Interface등으로 System에 구현할 수 있다.

Overloading

제조사 별로 추가적인 기능은 달라도 공통적인 마우스의 기능, 공통적인 운전 방법은 우리가 알고 있다.

하나의 예로 동일한 method Name이지만 arguments의 Data Type의 종류와 개수에 따라 무수히 많은 Class가 존재한다.

///method overloading
public void class mouse(기능1){
}

public void class mouse(기능1, 기능2){
}

public void class mouse(기능1, ....){
}

Method Overloading

다형성을 지원하는 기술로 동일한 name을 갖고 있는 method에 parameter 선언해 주고, 입력 받는 arguments의 Data Type, 개수 등에 따라 다른 기능을 수행할 수 있게 해준다.

하나의 bean과 class에서 사용하는 기술이다.

Method Overriding

Superclass의 Method의 이름을 Subclass에 복제하여 필요한 내용으로 재 정의 하는 기술

public class A{
	public void charge(){
		System.out.println("학생: 300, 일반인: 500");
	}
}
public class B extends A{
	public void charge(){
		System.out.println("학생: 300");
}


캡슐화(Encapuslation)

= 우리는 information hiding 된 객체이다.

º public과 privite등의 modifier을 통해 정보의 공개 여부를 결정한다. 또한 setter / getter Method를 통해 Information Hiding된 정보에 접근한다.

ex) 친분이 있는 사람에게는 이름, 나이 등의 정보를 알려주지만
친분이 없는 사람에게는 통상적으로 이름, 나이 등을 쉽게 알려주지 않는다.

좋은 웹페이지 즐겨찾기