2017. 1. 30. 22:43ㆍWork/Java
Abstract
"추상적인" 이라는 뜻을 지님
Abstract
class(추상 클래스)
- 인스턴스화를 막는다.
method(추상 메소드)
- 서브 클래스에게 몸통 부분 제작을 하도록 한다.
(몸통 부분 제작 불가)
(주의 : abstract class 는 일반 method를 만들어 몸통 부분을 바로 제작 할 수 있지만 반드시 abstract method를 1개 이상 가져야 한다.)
-> 서브 클래스가 반드시 제작해야 할 필요가 있는 메소드가 있을 경우 사용
각각 같은 이벤트 에서 다른 이벤트 발생을 원하는 경우 사용
Interface
interface
variable(인터페이스 변수)
- public static final type 과 동일
method(인터페이스 메소드)
- implements 적용된 클래스에게 몸통 부분 제작을 하도록 한다.
(몸통 부분 제작 불가)
_implements(구현, 시행) : 정보를 알려주고 구현은 하위의 존재에게 시킨다.
interface main_interface{
int var = 100; (public static final int var = 100; 과 동일)
public void display();
}
-> 객체 생성 불가, 다른 class에 implements 키워드를 붙여 사용
class A implements main_interface{
public void display(){...}
}
ex) main_interface m_i = new A(); (인터 페이스로 객체를 생성한다.)
=> 직접적인 세부 내용을 알 수 없다.
m_i.display(); (인터페이스에 선언된 함수는 호출 가능, 하지만 다른 함수는 불가능 하다.)
-> 구현 되지 않은 메소드와 필요한 상수들을 모아둔 구조
Polymorphism
"다형성" 이라는 뜻을 지님
슈퍼 클래스 객체 = 서브 클래스 객체
=> 자동 형 변환 된다 (슈퍼 클래스 -> 서브 클래스, 단 반대 형태는 error)
ex) void area(Object source){...}
classA a = new classA();
area(a); (자동 형 변환에 의거 변형)
-> 모양만 가지고 상황에 따른 다양한 일 처리