자바 프로그래밍 기초
1.인터페이스와 다형성
1)추상클래스 : 완전하게 구현되어있지않은 메소드를 가진 클래스. 객체생성 불가.
생성방법: 접근제어자 abstract class 클래스명(); <<추상클래스는 항시 세미콜론으로 종료한다.
2)추상클래스의 예
상속클래스와 같은 방법으로 사용한다. 서브클래스에서 extends를 사용하여 추상클래스를
서브클래스에서 받을수 있다.
*서브클래스에서 추상클래스를 구현하지 않으면 컴파일 오류가 발생한다.
3)인터페이스 : 추상클래스로 구성된 객체. 극단적인 추상클래스
인터페이스에서는 필드선언불가, 인스턴트 생성 불가하다.
4)인터페이스 선언예 :
*접근지정자 interface 인터페이스명 {
반환형 추상클래스1(...)
반환형 추상클래스2(...)
}
5)인터페이스 사용예 :
*접근지정자 class 클래스명 implements 인터페이스명 {
반환형 추상클래스1(...){ }
반환형 추상클래스2(...){ }
인터페이스 사용시 추상메소드의 몸체를 구현해야 한다.
}
6)인터페이스의 필요성?
여러종류의 가전제품을 사용하기 위해서는 홈네트워크 서버 사이에 제어가능한 표준규격이
필요한데, 이 때 그 규약을 Interface로 작성한다.
7)다형성
객체의 타입이 다르면 똑같은 메시지가 전달되어도 서로 다른 동작을 취할수 있다.
같은 명령을 내려도 객체의 타입이 다르면 서로 다른 결과를 얻을 수 있다.
상향형변환 : 보통 서브클래스 ->슈퍼클래스 순으로 인식되는데
상향형변환은 슈퍼클래스 객체가 있는곳을 서브클래스 객체로 대치할수 있다.
이를 상향형 변환이라 한다. 한마디로 상속을 거슬러 오르는 느낌이다.
그 러 나! 서브클래스의 모든필드/메소드를 사용하는것을 불가능하며, 가져간 부분만 사용 가능하다.
하향형변환 :서브클래스 참조변수로 수퍼클래스 객체를 참조. 상속과 같다.
instanceof : A instance of B는 객체 A가 타입 B이면 true dkslaus false를 반환한다
8)다형성의 예
ex) Shape s = new Circle();에서 s.draw()의 값을 shape가 아니고 Circle()의 draw()가 불러와진다.
9)내부클래스
클래스 안에 다른 클래스를 정의. 필드, 메소드와 마찬가지로 클래스의 멤버로서 사용된다.
*내부클래스는 클래스의 모든 멤버를 사용가능하다. 보통 내부클래스는 private로 정의한다.
이때 private적용시 클래스 내부에서만 사용가능하다.
10)무명클래스
클래스 몸체는 정의되지만 이름이 없는 클래스이다. 이름이 없기 때문에 한번만 사용가능하다.
클래스 구성방법 : new 상속받을 슈퍼클래스이름/인터페이스 이름 {}
클래스 구성 예 : RemoteControl이라는 인터페이스를 받는 무명클래스
RemoteControl rc = new RemoteControl() { 무명클래스 내용 }
'자료실 > Java' 카테고리의 다른 글
Java Tip-1 (0) | 2018.05.31 |
---|---|
Basic Java(기본 6) (0) | 2018.05.31 |
Basic Java(기본 4) (0) | 2018.05.31 |
Basic java(기본 3) (0) | 2018.05.31 |
Basic java(기본 2) (0) | 2018.05.31 |
댓글