다형성-추상클래스
웹 & 안드로이드/JAVA & JSP2013. 10. 1. 17:29
- 하나로 여러가지 일을 하는 것.
1.추상(Abstract)클래스
- 자바에서의 추상은 '완전하지 않다'라는 의미로 해석하면 된다.
- 추상클래스 : 추상메서드를 일부 포함하는 클래스.
- 추상메소드 : 몸체가 없는 메소드.
- 몸체가 없는 메소드를 추상메소드라고 하며 추상메소드를 하나 이상 포함하는 클래스는 추상 메소드이다.
- 추상 클래스는 extends를 이용해서 추상 메서드를 구현한다.
-예제)
Test.java
1
2
3
4
5
6
7
8
9
10 |
public abstract class Test {
public void a1(){
//멤버 메소드.
System.out.println("a1");
}
public abstract void a2();
//추상메소드. {}괄호가 없이 ;로 끝난다.
//즉 몸체가 없다.
}
|
Test1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
public class test1 {
public static void main(String args[]){
new test2().a1();
new test2().a2();
}
}
class test2 extends Test{
@Override
public void a2() {
System.out.println("a2");
}
}
|
결과
a1
a2
- 추상클래스는 절대 직접적으로 객체 생성이 불가능 하다. 완전하지 못한 추상메소드가 존재하기 때문이다.
추상클래스를 사용하기 위해서는 클래스에서 추상클래스를 상속 받아 추상메소드를 오버라이딩하여 완성 시켜야 한다.
- 추상클래스를 상속받은 하위 클래스에서 추상메소드를 오버라이딩 하지 않으면 하위 클래스도 추상클래스가 된다.
- 추상메소드를 가지지 않는 추상클래스가 존재 할 수도 있다
이 경우는 상속을 받기만 하면 완전한 클래스가 되기때문에 따로 오버라이딩 하지 않아도 객체 생성이 가능하다.
'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글
다형성 - 업캐스팅, 다운캐스팅 (0) | 2013.10.02 |
---|---|
다형성-인터페이스 (0) | 2013.10.02 |
추상클래스, 인터페이스 (0) | 2013.10.01 |
커넥션 풀 (0) | 2013.09.30 |
[이클립스 플러그인]SubVersive, svnConnector(svn 설치) (0) | 2013.09.30 |
댓글()